时间:2020-11-25 11:52:21 | 栏目:JAVA代码 | 点击:次
概述
由于前段时间,公司业务发展快,接了太多的业务需求了,没有时间把Eureka搞成高可用的,先用一台Eureka应付。当时由于流量还不大,不会出现问题。但是最近一个月,流量逐渐增大,老板担心万一单台Eureka挂了,服务会用不了。让我赶紧升级成3台Eureka,并两两注册,做到高可用。下面就把升级的过程说一下。
未升级前
单台Eureka
上,只有购物车这个服务提供方,共两台。
升级步骤
为了描述的方便,线上已经存在的Eureka
称之为peer1
,新增的两台Eureka
分别叫peer2
和peer3
。
第一步
将peer2
和peer3
作为客户端注册到peer1
上,根据Eureka
的原理,peer1
上的注册信息会同步到peer2
和peer3
上。但是由于购物车服务只会给peer1
发送心跳,而不会给peer2
和peer3
发送心跳信息,如果我们把Eureka
的自我保护模式关闭掉的话,刚刚同步到peer2
和peer3
上的购物车实例信息会很快被摘除掉的。
第二步
如第一步所提到的,peer2
和peer3
上的购物车实例会很快被摘除掉,因此我们还需要把peer1
也作为客户端注册到peer2和peer3
上。这样,由于购物车服务会给peer1
发送心跳,因此peer1
是会保存购物车服务的实例信息的,根据Eureka
的同步原理,这份实例信息会同步到peer2
和peer3
上,并自动维护这份信息。到此,注册中心的升级便完成了。最终效果如下:
第三步
重新部署购物车服务,将购物车服务的注册中心地址,指向高可用的注册中心。
第四步
重新部署Eureka Client
,将其注册中心的地址指向高可用的注册中心。
我是按照上面的方式升级的,没发现问题。有更好办法的,欢迎在评论中留言。
总结