V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Samuelcc
V2EX  ›  问与答

Istio / Envoy 的 circuit breaker 真的能够代替客户端库形式的 circuit breaker 吗?

  •  
  •   Samuelcc · 2021-11-22 16:46:53 +08:00 · 605 次点击
    这是一个创建于 911 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在调研从 Spring Cloud 转型到 Service Mesh 。 看各种资料以及博客中的说法,几乎都是说 Istio / Envoy 的 circuit breaker 以及 outlier detection 能够代替 Hystrix / recilience4j 等客户端库,客户端能够从 thick client 改为 thin client (不带服务发现、lb 、bulkhead 、circuit breaking 功能)。 但是在看了 Istio 和 Envoy 的相关文档之后,按我的理解它们大致上只能起到一个 bulkhead 的作用 (connection pool, 还有所谓的 circuit breaking),还有个被动的健康检查 (outlier detection),缺少接口粒度的断路,感觉并不能代替 Hystrix 等客户端弹性库。

    举例来说,一个服务能够提供一系列接口,在某些情况下部分接口出错,其他接口正常,在使用 Hystrix 的情况下能够单独对这些故障接口断路或者 fallback 等,而使用 sidecar 的话,对于非超时类的错误只能通过 outlier detection 将实例踢出 load balance pool ,造成正常的接口也无法使用。如果出错的接口占调用百分比较小,甚至不会做任何操作。

    真的非常疑惑,是我理解错了吗?还是接口粒度的断路不被需要呢?希望有了解 service mesh 或者实际落地代替 Hystrix 转为 thin client 的大佬能解答一二。感谢!

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5505 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:00 · PVG 10:00 · LAX 19:00 · JFK 22:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.