Spring Cloud学习(2)——高可用Eureka Server
阅读的书籍为《Spring Cloud 微服务实战》。
在单节点Eureka Server中,通过设置,让服务中心不注册自己:
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
而实现Eureka Server的高可用,实际就是把自己作为服务,向其他服务注册中心注册,形成一种互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。
在上文单节点的Eureka Server的基础之上进行扩展,
构建双节点服务注册中心集群
两个节点的hostname分别为peer1和peer2。
清空application.properties里的内容。
这里如果不清空之前application.properties里的内容,之前设置的eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
会对下文的测试产生影响,让peer1和peer2都在不可用分区中。
在application.properties的同级目录下创建application-peer1.properties作为peer1的配置文件,将serviceUrl指向peer2:
spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/
#关闭保护机制
eureka.server.enable-self-preservation=false
在application.properties的同级目录下创建application-peer2.properties作为peer2的配置文件,将serviceUrl指向peer1:
spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=peer2
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/
#关闭保护机制
eureka.server.enable-self-preservation=false
在/etc/hosts文件中添加对peer1和peer2的转换,windows系统的修改路径为C:\windows\system32\drivers\etc\hosts:
127.0.0.1 peer1
127.0.0.1 peer2
通过spring.profiles.active属性来分别启动peer1和peer2
java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
验证
访问peer1的注册中心http://localhost:1111
访问peer2的注册中心http://localhost:1112
可以看见,peer1和peer2分别出现在对方的registered-replicas和available-replicas中了。
这时,如果关闭peer2,刷新peer1,可以看见peer2变成了不可用分片(unavailable-replicas)。
推荐阅读
-
Spring-Cloud Eureka注册中心实现高可用搭建
-
Spring-Cloud Eureka注册中心实现高可用搭建
-
spring cloud配置高可用eureka时遇到的一些坑
-
Spring Cloud 学习系列:(十三)高可用的分布式配置中心——Spring Cloud Config
-
Spring Cloud--实现Eureka的高可用(Eureka集群搭建)实例
-
spring cloud配置高可用eureka时遇到的一些坑
-
高可用注册中心 ->Spring Cloud Eureka
-
spring-cloud微服务(2) 创建eureka client和server
-
搭建 Spring Cloud Eureka Server 高可用注册中心集群
-
spring cloud之eureka高可用集群和服务分区