V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yedra
V2EX  ›  Java

实例 down 掉, eureka 要 90s 后才剔除,那么期间的被打到这台实例的请求是不是就挂了?

  •  
  •   yedra · 2022-03-02 12:57:09 +08:00 · 3072 次点击
    这是一个创建于 758 天前的主题,其中的信息可能已经有所发展或是发生改变。
    16 条回复    2022-03-03 15:05:37 +08:00
    zhaorunze
        1
    zhaorunze  
       2022-03-02 13:09:10 +08:00
    有负载均衡呢,挂了不会请求其他机器么
    nicholasxuu
        2
    nicholasxuu  
       2022-03-02 13:23:33 +08:00
    health check 失败时不就可以直接被路由给踢了吗?
    fkdog
        3
    fkdog  
       2022-03-02 13:35:20 +08:00
    是的呢。
    各个 service 也是定期从 eureka 获取最新的服务可以用 ip 列表,然后本地按照一定的策略去访问。
    如果某个服务 A 挂了,B 服务本地从 eureka 获取的 A 服务 ip 列表还没更新,那么也是会出现访问到已经 down 机的那个 ip 上。

    要么做好服务 fallback ,要么做好故障转移
    fkdog
        4
    fkdog  
       2022-03-02 13:37:17 +08:00
    另外补充一下,有些注册中心用的是 push 模式,有的用的 pull ,有的用的长链接轮训。 主动 push 和长链接轮训的这种,如果 B 能优雅停机,那么 A 是能及时获取到最新的服务列表。

    如果 B 异常 down 机或者网络故障,那么 A 依然还是要做好回退策略的。
    murenx
        5
    murenx  
       2022-03-02 14:00:54 +08:00
    CAP 理论背书,分布式系统中注册中心必有,至于 A 和 C ,根据侧重点不同选取。eureka 就是保证了 AP ,至于 C ,通过重试,回退,幂等,分布式事务等策略进行处理
    dalang
        6
    dalang  
       2022-03-02 14:01:33 +08:00
    90 秒这个时间是可以调的。
    murenx
        7
    murenx  
       2022-03-02 14:02:04 +08:00
    eureka 是 AP
    ZooKeeper 是 CP
    nacos 不仅支持 CP 也支持 AP
    liyunyang
        8
    liyunyang  
       2022-03-02 16:50:45 +08:00
    paradoxs
        9
    paradoxs  
       2022-03-02 16:52:11 +08:00
    90 秒不是固定的

    直接换 nacos+sential
    twogoods
        10
    twogoods  
       2022-03-02 19:00:31 +08:00
    搜一下 eureka 服务优雅下线
    sun1993
        11
    sun1993  
       2022-03-02 19:14:46 +08:00
    P2C 负载均衡算法,可以主动将坏节点降权,并规律性重试,这个机制有点类似熔断
    starrynight9
        12
    starrynight9  
       2022-03-02 22:47:08 +08:00   ❤️ 1
    每个请求是由服务的 ribbon 组件进行处理的。默认请求失败之后会重试下一台实例,所以在外部看来就是可能会卡了一下。如果请求幂等的话,是没啥问题的
    plko345
        13
    plko345  
       2022-03-02 23:17:15 +08:00
    @twogoods 这个是主动下线, 假设情况是服务的一个副本意外故障呢, 怎么在短时间内(如 5 秒内)让该服务自动下线
    twogoods
        14
    twogoods  
       2022-03-03 09:50:20 +08:00
    @plko345 #13 意外故障也分情况 是不是 unhealth 了会不会同步到 eureka,能不能代业务上判断加个钩子实现主动 shutdown,又或者不强依赖实例下线,调用方重试行不行,又或者负载均衡算法根据错误率权重来选择实例
    Chinsung
        15
    Chinsung  
       2022-03-03 11:38:46 +08:00
    重试配置好,直接 try 下一台机器就行了,当次请求的延迟可能会高一点
    要么就检测实例 down 了就发 eureka 接口手动下线
    wujiezero
        16
    wujiezero  
       2022-03-03 15:05:37 +08:00
    负载均衡策略可以设置请求不发往 down 掉的实例
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5303 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:57 · PVG 13:57 · LAX 22:57 · JFK 01:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.