springcloud系列12——Eureka的高可用

Eureka Server的高可用是通过各个Eureka Server作为服务向其他Eureka Server注册,来实现服务列表的同步,达到高可用的效果。

默认情况下,每个Eureka服务器也是Eureka客户端,并且需要(至少一个)服务URL来定位对等端。


我们对以前的Eureka Server工程做修改,在application.yml配置如下:

---
server:
  port: 8761
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2:8762/eureka/,http://peer3:8763/eureka/
---
server:
  port: 8762
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/,http://peer3:8763/eureka/
---
server:
  port: 8763
spring:
  profiles: peer3
eureka:
  instance:
    hostname: peer3
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/

这里是本地测试,所以3个Eureka Server的配置都写在一个配置文件。
修改hosts文件:127.0.0.1 peer1 peer2 peer3,peer1,peer2,peer3都映射到127.0.0.1。
在启动时指定profile,idea的配置如下:

依次启动peer1,peer2,peer3。
观察peer1,peer2的日志都有报错。peer1报错是因为peer2和peer3服务没有启动,导致没法将自己注册到peer2和peer3。peer2报错是因为peer3没有启动,peer3启动正常,无错误。
查看peer1

查看peer2

查看peer3

可以看到:
* 1.每个Eureka Server都是其他Eureka Server的一个服务;
* 2.每个Eureka Server都是相互同步的。

其他服务提供者的application.yml修改:

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka,http://peer1:8762/eureka,http://peer1:8763/eureka

建议把每个Eureka Server地址都写上。只写其中一个启动也是没问题的。但是,如果只写peer1的地址,那么该服务挂掉,且peer1也挂掉,将导致服务不能注册。

Eureka Server的高可用参考Spring Cloud官方文档

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值