場景描述:
Eureka的集群節點有兩個,互相注冊形成集群,已經支持動態刷新(不知道怎么讓Eureka支持動態刷新的可以參考http://www.cnblogs.com/flying607/p/8459397.html),已經在運行,使用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的代理。
各位大佬如果有什么好的想法歡迎在評論區留言。