Spring Cloud(F版)搭建高可用服务注册中心

约定不等于承诺〃 2021-10-09 04:40 463阅读 0赞

上一篇文章【Spring Cloud搭建注册中心】成功搭建了一个Eureka Server服务注册中心,不过相信细心的朋友都会发现,这个服务注册中心是一个单节点服务注册中心,万一发生故障或者服务器宕机,那所有的服务可就不能使用了,这个在生产环境了是不允许的。

Eureka Server其实设计早就考虑到了高可用性,Eureka Server可以将自己作为服务注册到其他服务注册中心,这样可以互相注册,以实现服务清单的同步,达到高可用的效果。

——————————————————————————————————————————————————————

添加配置文件

在我们上一篇文章中,搭建的eureka-server-test项目中添加两个配置文件,aplication-peer1.properties和aplication-peer2.properties,详细配置文件内容如下:

  1. #端口号
  2. server.port=8081
  3. spring.profiles=peer1
  4. eureka.instance.hostname=peer1
  5. #向注册中心注册服务
  6. eureka.client.registerWithEureka=false
  7. # 检索服务
  8. eureka.client.fetchRegistry=false
  9. eureka.client.serviceUrl.defaultZone=http://peer2:8082/eureka/
  10. #在Eureka服务器获取不到集群里对等服务器上的实例时,需要等待的时间
  11. server.waitTimeInMsWhenSyncEmpty=0
  12. #自我保护模式
  13. server.enableSelfPreservation=false
  14. #端口号
  15. server.port=8082
  16. spring.profiles=peer2
  17. eureka.instance.hostname=peer2
  18. #向注册中心注册服务
  19. eureka.client.registerWithEureka=false
  20. # 检索服务
  21. eureka.client.fetchRegistry=false
  22. eureka.client.serviceUrl.defaultZone=http://peer1:8081/eureka/
  23. #在Eureka服务器获取不到集群里对等服务器上的实例时,需要等待的时间
  24. server.waitTimeInMsWhenSyncEmpty=0
  25. #自我保护模式
  26. server.enableSelfPreservation=false

在peer1配置文件中,serviceUrl指向peer2,而peer2配置文件中,serviceUrl指向peer1,这样就做到了相互注册。这里还需要注意在本地测试的时候,我们需要修改host文件(C:\Windows\System32\drivers\etc),添加以下内容:

  1. 127.0.0.1 peer1
  2. 127.0.0.1 peer2

生成jar包

使用IDEA进行Maven Intall,【 IntelliJ IDEA 社区版 Maven Install 和Maven clean】
在这里插入图片描述

启动两个注册服务中心

这里我们不使用IDEA进行项目启动,而是直接通过命令来启动。

  1. java -jar eureka-server-test-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
  2. java -jar eureka-server-test-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

在这里插入图片描述
在这里插入图片描述
启动成功之后,在浏览器中进行访问,这时候在8081的DS Replicas中可以看到peer2节点,在8082的DS Replicas中可以看到peer1节点,这样我们双节点的服务注册中心就搭建好了。

启动服务提供者

依然是上一篇文章中创建的eureka-client-test项目,修改提供者的配置文件:

  1. server.port=9081
  2. spring.application.name=client-demo
  3. eureka.client.serviceUrl.defaultZone=http://peer1:8081/eureka/,http://peer2:8082/eureka/

此处两个服务注册中的地址都添加上,以”,”分隔。
在这里插入图片描述
在这里插入图片描述

然后分别访问http://localhost:8081/ 和 http://localhost:8082/ 可以看到提供者已经注册到两个服务注册中心了。

到这里,一个高可用的服务注册中心集群就搭建完成了。

发表评论

表情:
评论列表 (有 0 条评论,463人围观)

还没有评论,来说两句吧...

相关阅读