Files
rikako-note/spring/Spring Cloud/Spring Cloud Netflix.md
2023-03-13 18:19:47 +08:00

41 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Eureka
## Service Discovery: Eureka Client
服务发现是基于微服务体系结构的关键之一。在微服务体系结构中,如果手动配置每个客户端,这将会很困难,并且很脆弱。
Eureka是Netflix的服务发现的client和server。通过配置和部署Eureka server可以实现高可用每个server节点会向其他server节点复制已注册service的状态。
## 将Eureka Client包含到项目中
如果想要将Eureka Client包含到项目中可以在依赖中添加如下starter
```xml
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
```
## 向Eureka中注册
当一个client向eureka server中注册时其提供了关于其自身的元数据例如hostport判断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实例行为即可