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

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

  • 相关阅读:
    EntityManager 实例化方法
    Java Jpa 规范
    Spring HandlerInterceptor
    Spring data jpa
    Spring Security @PreAuthorize 拦截无效
    Java ee el表达式
    脏读&幻读
    OR查询是否会使得索引失效?
    ThinkPHP中的parseDSN方法的坑记录一下
    js , map中的坑
  • 原文地址:https://www.cnblogs.com/flying607/p/8677136.html
Copyright © 2020-2023  润新知