阅读Spring Cloud Netflix文档
This commit is contained in:
@@ -99,10 +99,10 @@ public class Application {
|
||||
### 高可用
|
||||
Eureka Server并没有后端存储,但是注册到Eureka Server中的所有service实例都必须向eureka server发送心跳包来保证其注册状态是最新的,上述所有操作都是在eureka server的内存中完成的。
|
||||
client端也会在内存中对eureka server中的注册状态进行缓存,故而无需每次请求其他service时都要从eureka server中获取注册状态。
|
||||
> 默认情况下,每个eureka server都同时是一个client,并且需要至少一个URL来定位其他的service实例。
|
||||
> 默认情况下,每个eureka server都同时是一个client,并且需要至少一个URL来定位其他的peer instance。如果没有提供该URL,服务仍然能启动,但是会一直输出日志表示无法向其他peer instance注册。
|
||||
|
||||
### 单机模式
|
||||
单机模式下,可以通过如下配置来关闭客户端的行为:
|
||||
单机模式下,可能需要关闭eureka的客户端行为,例如持续获取其peer instance并失败。可以通过如下配置来关闭客户端的行为:
|
||||
```yml
|
||||
server:
|
||||
port: 8761
|
||||
@@ -116,4 +116,57 @@ eureka:
|
||||
serviceUrl:
|
||||
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
|
||||
```
|
||||
单机模式下,`serviceUrl`指向与本地实例相同的host地址。
|
||||
### Peer Awareness
|
||||
相比于单机模式,通过运行多个eureka实例并且让实例之间相互注册,Eureka可以配置的更加弹性和高可用。上述是eureka的默认行为,配置时只需要指定peer instance的`serviceUrl`,如下所示:
|
||||
```yml
|
||||
---
|
||||
spring:
|
||||
profiles: peer1
|
||||
eureka:
|
||||
instance:
|
||||
hostname: peer1
|
||||
client:
|
||||
serviceUrl:
|
||||
defaultZone: https://peer2/eureka/
|
||||
|
||||
---
|
||||
spring:
|
||||
profiles: peer2
|
||||
eureka:
|
||||
instance:
|
||||
hostname: peer2
|
||||
client:
|
||||
serviceUrl:
|
||||
defaultZone: https://peer1/eureka/
|
||||
```
|
||||
可以向系统中添加多个peer instance,实例之间两两相互连接,实例之间相互同步注册信息。示例如下:
|
||||
```yml
|
||||
eureka:
|
||||
client:
|
||||
serviceUrl:
|
||||
defaultZone: https://peer1/eureka/,http://peer2/eureka/,http://peer3/eureka/
|
||||
|
||||
---
|
||||
spring:
|
||||
profiles: peer1
|
||||
eureka:
|
||||
instance:
|
||||
hostname: peer1
|
||||
|
||||
---
|
||||
spring:
|
||||
profiles: peer2
|
||||
eureka:
|
||||
instance:
|
||||
hostname: peer2
|
||||
|
||||
---
|
||||
spring:
|
||||
profiles: peer3
|
||||
eureka:
|
||||
instance:
|
||||
hostname: peer3
|
||||
```
|
||||
### IP地址注册
|
||||
在某些场景下,可能更喜欢通过ip地址而不是hostname来进行注册。如果将`eureka.instance.preferIpAddress`设置为true,那么在应用注册到eureka时,会使用ip地址而不是
|
||||
|
||||
Reference in New Issue
Block a user