Spring Cloud搭建高可用服务注册中心

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

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

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

添加配置文件

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

#端口号 server.port=8081 spring.profiles=peer1 eureka.instance.hostname=peer1 #向注册中心注册服务 eureka.client.registerWithEureka=false # 检索服务 eureka.client.fetchRegistry=false eureka.client.serviceUrl.defaultZone=http://peer2:8082/eureka/ #在Eureka服务器获取不到集群里对等服务器上的实例时,需要等待的时间 server.waitTimeInMsWhenSyncEmpty=0 #自我保护模式 server.enableSelfPreservation=false #端口号 server.port=8082 spring.profiles=peer2 eureka.instance.hostname=peer2 #向注册中心注册服务 eureka.client.registerWithEureka=false # 检索服务 eureka.client.fetchRegistry=false eureka.client.serviceUrl.defaultZone=http://peer1:8081/eureka/ #在Eureka服务器获取不到集群里对等服务器上的实例时,需要等待的时间 server.waitTimeInMsWhenSyncEmpty=0 #自我保护模式 server.enableSelfPreservation=false

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

127.0.0.1 peer1 127.0.0.1 peer2 生成jar包

使用IDEA进行Maven Intall,【 IntelliJ IDEA 社区版 Maven Install 和Maven clean】

在这里插入图片描述

启动两个注册服务中心

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

java -jar eureka-server-test-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 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项目,修改提供者的配置文件:

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

此处两个服务注册中的地址都添加上,以","分隔。

在这里插入图片描述


在这里插入图片描述


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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxxjx.html