Eureka集群高可用配置.
SERVER:1
server: port:
1111 instance:
hostname: ${spring.cloud.client.ip
-address} instance
-id: ${eureka.instance.hostname}:${server.port} preferIpAddress:
true #指定通过IP注册,一般服务集群时配置,需要ip-address参数一起设置(保证hostName和ip-address一样),以免eureka管理页面出现不可用分片提示信息(unavailable-replicas),服务的注册默认是通过hostName注册的,当判断注册的hostName和服务 ip
-address: ${EUREKA_IP:${eureka.instance.hostname}} #强制指定eureka的ip地址 client:
service
-url: defaultZone: http:
//${eureka.instance.hostname}:1112/eureka/ fetch-registry: true #集群时需要强制手动指定,fetch-registry、register-with-eureka都需要设置为true
register-with-eureka: true #集群时需要强制手动指定,fetch-registry、register-with-eureka都需要设置为true
SERVER:2
server: port:
1112eureka:
instance:
hostname: ${spring.cloud.client.ip
-address} instance
-id: ${eureka.instance.hostname}:${server.port} #eureka server管理页面显示的服务状态 preferIpAddress:
true #指定通过IP注册,服务集群高可用必须配置,需要ip-address参数一起设置,以免eureka管理页面出现不可用分片提示信息(unavailable-replicas) ip
-address: ${EUREKA_IP:${eureka.instance.hostname}} #强制指定eureka的ip地址 client:
service
-url: defaultZone: http:
//${eureka.instance.hostname}:1111/eureka/ fetch-registry: true #集群时需要强制手动指定,fetch-registry、register-with-eureka都需要设置为true
register-with-eureka: true #集群时需要强制手动指定,fetch-registry、register-with-eureka都需要设置为true
需要注意的是
Eureka高可用部署,启动多个注册中心后,节点均出现在unavailable-replicas,查阅各类资料测试,提供方案:
1.eureka.client.serviceUrl.defaultZone配置项的地址,不能使用localhost,要使用ip或域名
2.spring.application.name要一致(这个个人测试默认不配也可以)
3. fetch-registry、register-with-eureka 都需要设置为true,要不然集群服务器数据不同步,目前Spring Cloud 版本为 Finchley.RELEASE
默认情况下,eureka client使用主机名(hostName)向注册中心注册。
当prefer-ip-address: true时 ,client使用的是ip向服务中心注册 ,但是默认获取的ip是 127.0.0.1。默认情况下 当 这个获取的ip 和 hostName 不同时 ,则产生不可用分片提示信息(unavailable-replicas),并且集群间的数据不会同步。
所以要么指定 两个ip相同 ,就不会有提示了(指定ip-address和hostname相同)。
以上是 Eureka集群高可用配置. 的全部内容, 来源链接: utcz.com/z/510204.html