線上單臺Eureka升級到3臺Eureka高可用
阿新 • • 發佈:2018-12-16
概述
由於前段時間,公司業務發展快,接了太多的業務需求了,沒有時間把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
,將其註冊中心的地址指向高可用的註冊中心。
總結
我是按照上面的方式升級的,沒發現問題。有更好的辦法的,歡迎在評論中留言。