spring cloud 搭建高可用的注册中心

上一篇博文中我们已经看了如何搭建注册中心,但是单点的注册中心在实际生产环境下是存在缺陷的,当该节点宕机后,依赖他服务的微服务将出现故障,所以就需要一个高可用的注册中心来弥补这种缺陷。

高可用的注册中心实现思路

Eureka通过“伙伴”机制实现高可用。每一台Eureka都需要在配置中指定另一个Eureka的地址作为伙伴,Eureka启动时会向自己的伙伴节点获取当前已经存在的注册列表, 这样在向Eureka集群中新加机器时就不需要担心注册列表不完整的问题。

除此之外,Eureka还支持Region和Zone的概念。其中一个Region可以包含多个Zone。Eureka在启动时需要指定一个Zone名,即当前Eureka属于哪个zone, 如果不指定则属于defaultZone。Eureka Client也需要指定Zone, Client(当与Ribbon配置使用时)在向Server获取注册列表时会优先向自己Zone的Eureka发请求,如果自己Zone中的Eureka全挂了才会尝试向其它Zone。Region和Zone可以对应于现实中的大区和机房,如在华北地区有10个机房,在华南地区有20个机房,那么分别为Eureka指定合理的Region和Zone能有效避免跨机房调用,同时一个地区的Eureka坏掉不会导致整个该地区的服务都不可用。

本文我们通过运行eureka-server多个实例,并进行互相注册的方式来实现高可用的部署,我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。

我们可以创建三个注册中心节点,每个节点进行两两注册,实现完全对等的效果,可以达到集群的最高可用性,任何一个节点挂掉都不会影响服务的注册与发现。

1、服务器准备

在winsow环境下测试
127.0.0.1 eureka-server-peer1
127.0.0.1 eureka-server-peer2
127.0.0.1 eureka-server-peer3
这里写图片描述

2、创建三个项目

这里写图片描述

3、修改application.properties

spring-cloud-server的

server.port=8761
spring.application.name=microservice-eureka-server
spring.profiles=peer1
eureka.instance.hostname=eureka-server-peer1
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://eureka-server-peer2:8762/eureka/,http://eureka-server-peer3:8763/eureka/

spring-cloud-server_1的

server.port=8762
spring.application.name=microservice-eureka-server
spring.profiles=peer2
eureka.instance.hostname=eureka-server-peer2
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://eureka-server-peer1:8761/eureka/,http://eureka-server-peer3:8763/eureka/

spring-cloud-server_2的

server.port=8763
spring.application.name=microservice-eureka-server
spring.profiles=peer3
eureka.instance.hostname=eureka-server-peer3
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://eureka-server-peer1:8761/eureka/,http://eureka-server-peer2:8762/eureka/

4、分别启动三个项目

访问http://localhost:8761/
这里写图片描述
这样就实现了高可用的注册中心,下面章节开始注册服务


想了解更多java相关技术,请关注公众号“JavaEE那些事”

扫描下面二维码,更多技术资料等你来拿
这里写图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值