From 25af13f91fc578d7e84036dfd6027b7a821612dd Mon Sep 17 00:00:00 2001 From: Rikako Wu <496063163@qq.com> Date: Mon, 13 Mar 2023 18:19:47 +0800 Subject: [PATCH] =?UTF-8?q?spring=20cloud=20=E6=96=87=E6=A1=A3=E9=98=85?= =?UTF-8?q?=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring/Spring Cloud/Spring Cloud Netflix.md | 40 +++++++++++++++++++++ spring/Spring Cloud/Spring Cloud.md | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 spring/Spring Cloud/Spring Cloud Netflix.md diff --git a/spring/Spring Cloud/Spring Cloud Netflix.md b/spring/Spring Cloud/Spring Cloud Netflix.md new file mode 100644 index 0000000..a89bf06 --- /dev/null +++ b/spring/Spring Cloud/Spring Cloud Netflix.md @@ -0,0 +1,40 @@ +# Eureka +## Service Discovery: Eureka Client +服务发现是基于微服务体系结构的关键之一。在微服务体系结构中,如果手动配置每个客户端,这将会很困难,并且很脆弱。 +Eureka是Netflix的服务发现的client和server。通过配置和部署,Eureka server可以实现高可用,每个server节点会向其他server节点复制已注册service的状态。 +## 将Eureka Client包含到项目中 +如果想要将Eureka Client包含到项目中,可以在依赖中添加如下starter: +```xml +org.springframework.cloud +spring-cloud-starter-netflix-eureka-client +``` +## 向Eureka中注册 +当一个client向eureka server中注册时,其提供了关于其自身的元数据(例如host,port,判断health状态的url等)。eureka从一个service的所有实例接收心跳信息,如果一个实例心跳报接收超过特定的时间,那么该实例将会从注册中心移除。 +如下显示了一个简单的Eureka Client: +```java +@SpringBootApplication +@RestController +public class Application { + + @RequestMapping("/") + public String home() { + return "Hello world"; + } + + public static void main(String[] args) { + new SpringApplicationBuilder(Application.class).web(true).run(args); + } + +} +``` +在上述client项目中,如果classpath中存在`spring-cloud-starter-netflix-eureka-client`依赖,那么client应用将会自动在注册到eureka server中。 +eureka server的信息需要手动配置: +```yml +eureka: + client: + serviceUrl: + defaultZone: http://localhost:8761/eureka/ +``` +在上述的配置中,defaultZone是一个默认的回退值,用于向client提供service url默认值。 +将`spring-cloud-starter-netflix-eureka-client`依赖包含在classpath中,既会将应用注册为eureka的一个实例,也会将应用变为eureka的一个客户端(可以查询注册中心并且获取其他service的信息)。 +eureka实例的行为将会由`eureka.instance.*`来进行配置,但是当项目制定了`spring.application.name`时,使用默认值来控制eureka实例行为即可 diff --git a/spring/Spring Cloud/Spring Cloud.md b/spring/Spring Cloud/Spring Cloud.md index 16b6ded..9543d77 100644 --- a/spring/Spring Cloud/Spring Cloud.md +++ b/spring/Spring Cloud/Spring Cloud.md @@ -1,4 +1,4 @@ -# Spring Cloud +# Spring Cloud简介 ## eureka eureka是由netflix公司开源的一个服务注册与发现组件。eureka和其他一些同样由netflix公司开源的组建一起被整合为spring cloud netflix模块。 ### eureka和zookeeper的区别