場景描述:
Eureka的叢集節點有兩個,互相注冊形成叢集,已經支援動态重新整理,已經在運作,使用nginx做負載均衡,代理該叢集,服務的注冊中心位址直接寫nginx位址。
現在想增加一個Eureka節點到這個叢集中,又不重新開機任何服務。
擴充新節點步驟如下:
0、新節點配置完整的叢集位址(eureka.client.service-url.defaultZone) 并啟動
1、修改每個eureka的application.yml(該配置檔案是放在jar包外部的,是以可以友善修改),增加新的節點
2、挨個重新整理每個eureka的配置
3、等待大約十分鐘(這個配置暫時不知道從哪能找到,我等了大約十分鐘才看到新節點上有了動靜),重新整理新節點,看到有服務資訊同步過去了
4、修改nginx的負載均衡位址,加入新的節點位址
5、nginx -s reload
使用的版本:Dalston.SR1
題外話:
本文場景中描述的叢集方案存在一定缺陷,如果叢集中某個節點挂掉了,并沒有比較完善的熔斷和重試措施保護。
如果對這方面要求比較高可以考慮使用keepalived(虛出一個IP,監聽某個端口,及時剔除),或者zuul搭配ribbon自動重試(部落客暫未驗證),
來取代nginx的代理。