高可用注册中心
在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署。在eureka-server中的application.yml中我们还记得两段配置。让服务注册中心自己不注册自己
eureka:
client:
#由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己
registerWithEureka: false
#由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为false
fetchRegistry: false
下面我们就要重新更改配置文件,让eureke-server自己作为服务向其他服务注册中心注册自己。这样就可以形成一组互相注册的服务注册中心,以实现服务清单的相互同步,达到高可用的效果。
根据(1-1)SpringCloud-Eureka:服务的注册与发现 进行改造。
步骤一:在maven的resources文件夹下新建两个配置文件application-peer1.properties 和 application-peer2.properties
application-peer1.properties
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
spring.application.name=eureka-ha-server
server.port=8751
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:8752/eureka
application-peer2.properties
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
spring.application.name=eureka-ha-server
server.port=8752
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer2:8751/eureka
步骤二:到C:WindowsSystem32driversetc下修改hosts文件,添加
127.0.0.1 peer1
127.0.0.1 peer2
步骤三:启动服务
在项目的pom.xml目录下运行mvn clean install。然后去maven仓库下去找到生成的jar文件,然后运行
java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer1
java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer2
高可用注册中心就配置好了
https://gitee.com/huayicompany/springcloud-learn/tree/master/lesson2/eureka-ha-server
参考:
[1] 《SpringCloud微服务实战》,电子工业出版社,翟永超