前言:
为了提升注册中心稳定性,防止注册中心宕机后,服务不可用的情况,我们可以通过将Eureka注册中心搭建成集群模式,当一台注册中心微服务宕机后,另一台依然可以支持服务的注册与发现。本文将讲解下如何搭建Eureka集群,以及相关的注意事项。
一.注册中心微服务如何配置
①.准备两台服务器,用于运行注册中心微服务:
- 10.10.10.13
- 10.10.10.151
②.微服务配置文件
增加两个配置文件,用于在不同服务器上运行微服务时,需要指定配置:
在服务器10.10.10.13使用application-dev.properties:
#eureka.instance.hostname=leader
eureka.instance.hostname=${spring.cloud.client.ip-address}
eureka.instance.prefer-ip-address=true
eureka.client.service-url.defaultZone=http://10.10.10.151:8661/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
# 关闭自我保护,并3秒踢出宕机的服务
eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms=3000
在服务器10.10.10.13,执行命令:
nohup java -jar /root/app/spring-cloud-registry-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >/dev/null 2>&1 &
在服务器10.10.10.151使用application-dev2.properties:
#eureka.instance.hostname=follower
eureka.instance.hostname=${spring.cloud.client.ip-address}
eureka.instance.prefer-ip-address=true
eureka.client.service-url.defaultZone=http://10.10.10.13:8661/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
# 关闭自我保护,并3秒踢出宕机的服务
eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms=3000
在服务器10.10.10.151,执行命令:
nohup java -jar /root/app/spring-cloud-registry-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev2 >/dev/null 2>&1 &
注①:IP一定要交叉配置,即在服务器10.10.10.13配置文件中通过下面配置来发现对方:`eureka.client.service-url.defaultZone=http://10.10.10.151:8661/eureka/`,另一台同理。此处配置最好写IP地址,我尝试过写IP对应的域名,发现两个注册中心无法发现彼此,目前不清楚原因,大家一定注意。
二.需要注册的微服务如何配置
在application-dev.properties中,写上两个注册中心的IP地址,中间用英文逗号隔开:
eureka.client.service-url.defaultZone=http://10.10.10.13:8661/eureka/,http://10.10.10.151:8661/eureka/
三.启动测试
我们访问注册中心:10.10.10.13:8661,可以看到DS Replicas
中显示出了第二台注册中心的IP地址:
同理,在第二台注册中心中,也发现了第一个注册中心的IP地址:
并且在registered-replicas
中也同步显示出另一台注册中心的地址,表示集群搭建成功,这里一定要确认,否则集群搭建失败。
总结:
本文介绍了两台服务器搭建Eureka集群的方法,以及注意事项,为了保证生产环境的稳定性,建议注册中心以集群方式搭建运行。喜欢本文请收藏点赞。