Eureka集群高可用配置.

coding

SERVER:1


server:

port: 1111

eureka:

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: 1112

eureka:

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

回到顶部