eureka高可用方案及测试

首先,eureka的ha基本解决方案是通过部署多eureka实例,并且使任何一实例均注册到其余所有eureka中,互相注册,达到注册列表多备份。

然后,对于client端,启动时,eureka.client.service-url.defaultZone需要将各eureka实例均配置上,通过“,”间隔即可。

预备工作

以下是ha测试过程:

eureka实例:

实例1:

所在宿主机:10.**.*.193

端口:9099

启动参数(向其余实例注册):--eureka.client.service-url.defaultZone=http://10.**.*.194:9099/eureka

实例2:

所在宿主机:10.**.*.194

端口:9099

启动参数(向其余实例注册):--eureka.client.service-url.defaultZone=http://10.**.*.193:9099/eureka

业务服务:

模块:

  • demo-eureka-client-A
  • demo-eureka-client-B
    示例中B持有A的feignClient,并向A发起请求。

如果eureka-server地址变动,启动参数更改即可。

启动ha测试:

1、启动如上两个(及以上)实例,可看到,两个实例互相注册到了对方的列表中

 

2、测试场景

  1. 启动业务服务,仅向194eureka进行注册,启动参数为:--eureka.client.service-url.defaultZone=http://10.***.*.194:9099/eureka,结果:194和193的eureka实例注册列表中均注册了业务服务
  2. 停止194实例,该服务将不能再次向194进行注册信息的拉取,会重试并报错,即不能再拉取到最新的服务列表,
    它能否访问已有的拉取到本地的服务列表呢?如果在eureka停掉前已经拉取过应用列表,那么能,而且只能访问已缓存的原服务列表,新的将不能访问到。
  3. 启动业务服务,向两个实例注册,启动参数为:--eureka.client.service-url.defaultZone=http://10.***.*.193:9099/eureka,http://10.***.*.194:9099/eureka,结果:194和193的eureka实例注册列表中均注册了该业务服务
  4. 停止其中一个实例,如194,此时由两种情况:
    1. 该业务服务启动时优先注册的就是194,此时心跳检测时会报错,并重新向另外的地址发起心跳,若成功,将重定向为向该实例作为主注册中心。
    2. 该业务启动时优先注册的时193,此时194停止不会对其造成影响。
  5. 停止所有eureka实例,此时,client仍可以使用缓存去向其他已知服务发起请求
  6. eureka-server启动时仅注册到自己(不互相注册),业务实例启动时启动参数设置:--eureka.client.service-url.defaultZone=http://10.***.*.193:9099/eureka,http://10.***.*.194:9099/eureka,仍向两个eureka-server注册,观察,得到,两个eureka并未互相注册,且业务实例仅向其中一eureka进行了注册。

3、结论

  1. eureka-server集群部署时互相注册
  2. eureka-client启动时应该将所有eureka-server配置上
  3. 所有eureka-server均宕掉后,对于已经拉取过服务列表的服务,仍可以使用缓存进行服务间调用

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值