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

兄弟们听说过自愈嘛?

  •  
  •   microxiaoxiao · 2022-07-11 21:05:34 +08:00 · 3198 次点击
    这是一个创建于 857 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是这样的,最近有人告诉我说,为了避免消息丢失,状态不更新的问题,然后啥都搞个一直轮询的逻辑。比如 redis 的消息订阅,kafka 的消息等,大家都是这样设计的嘛?是不是太自愈。

    9 条回复    2022-07-12 14:55:26 +08:00
    PerFectTime
        1
    PerFectTime  
       2022-07-11 21:07:35 +08:00
    还以为你说系统有 bug ,没人管他过一会自己就好了
    S2Line
        2
    S2Line  
       2022-07-11 21:10:34 +08:00 via iPhone
    redis 可以做降级和自愈,提高系统健壮性。
    bthulu
        3
    bthulu  
       2022-07-12 08:40:42 +08:00
    是的, 推送不靠谱, 必须有轮询来兜底
    Junzhou
        4
    Junzhou  
       2022-07-12 09:46:16 +08:00
    跟一下 3 楼。是的,三方回调通知有可能会丢(比如网络链路拥塞等),必须有轮询来兜底
    julyclyde
        5
    julyclyde  
       2022-07-12 09:52:59 +08:00
    如果遇到消息丢失,应该去修理消息丢失啊
    1 为什么要用轮训去补
    2 用了轮训是不是就打算无视消息丢失这个故障了?
    ql562482472
        6
    ql562482472  
       2022-07-12 10:40:12 +08:00
    @julyclyde 消息丢失始终都会出现的,不可能完全解决,只能说尽可能降低概率,所以轮询是兜底和最可靠的解决方案
    nothingistrue
        7
    nothingistrue  
       2022-07-12 11:04:12 +08:00
    @julyclyde #5 消息丢失是订阅方的问题,不是发布方的问题。RabbitMq Exchange 就是个典型,消费方下线的时候,生产方发布的消息就奔向太空了。

    说轮询弥补消息丢失其实不完全对,真正弥补消息丢失的,是发布方保存(暂存)消息+订阅方轮询。
    alexsunxl
        8
    alexsunxl  
       2022-07-12 12:10:59 +08:00
    @julyclyde
    复杂点的系统 都有兜底设计。只是说 选用那种方式的区别而已。
    Miy4mori
        9
    Miy4mori  
       2022-07-12 14:55:26 +08:00
    @julyclyde 他说的是“三方回调通知有可能会丢(比如网络链路拥塞等)”,网络波动你怎么修,不许网络波动?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4226 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:07 · PVG 12:07 · LAX 20:07 · JFK 23:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.