Spring Cloud Eureka集群 动态扩展新节点


场景描述:

 

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的代理。

各位大佬如果有什么好的想法欢迎在评论区留言。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM