开发者社区 > 云原生 > 正文

client与broker网络不一致情况下,findConsumerIdList机制是否合理

rocketmq使用的客户端负载均衡,hash算法是在客户端实现。

该算法使用的是数据来源为 namesrv提供的broker集合,和随机到一台broker上获取findConsumerIdList的集合。 改机制可靠性成立的两个关键核心是,broker与namesrv之间的网络可靠性必须一致,和client与broker之间的网络可靠性必须一致。

一旦发生局部网络不一致则有概率产生,两个client计算出统一个MessageQueue,这样commit操作是自相冲突的。会产生重复消费。

原提问者GitHub用户beijixiongzzj

展开
收起
芬奇福贵 2023-05-26 16:05:11 107 0
1 条回答
写回答
取消 提交回答
  • 在网络出现问题或者是系统抖动的情况下确实有可能导致这些情况,所以rocketmq客户端有定时获取元数据做rebalance的机制,而且出现上述问题后,最大的可能在于重复消息,而不会丢失消息,我们认为这个是可以接受的

    原回答者GitHub用户duhenglucky

    2023-05-26 18:04:18
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
轻松应对双11,百万级物理和虚拟网络设备的网络智能化实践 立即下载
网络虚拟化技术为双11提供灵动网络 立即下载
阿里云网络产品概览 立即下载