顺序消息: 1. 生产者有多个instance, 需要业务方自己写额外代码,只保证有1个instan

顺序消息: 1. 生产者有多个instance, 需要业务方自己写额外代码,只保证有1个instance去发顺序消息? 有其他办法么? 2. 顺序消息,我看文档没有要求只有一个consumer消费,多个消费方基于ack不会造成乱序? a4c56dd506a1b675fc38df84547b2d3b.png

展开
收起
十一0204 2023-04-03 16:32:50 240 分享 版权
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    使用 Mutex 实现机器级别的锁:业务方可以在多个 instance 之上部署一个共享资源服务,用一个 Mutex 对象来实现机器级别的锁。每次要发送有序消息的 instance,需要先获取 Mutex 锁,如果某个 instance 获取到 Mutex 锁,则该 instance 可以正常发送有序消息,其他 instance 发送无序消息或等待下一个周期。可以采用 Redis 等分布式锁技术实现 Mutex 锁。

    2023-04-24 14:21:22
    赞同 展开评论
  • 意中人就是我呀!

    这篇文档的逻辑是,对于消息来说顺序的定义,是涵盖生产到消费整个链路的定义的。生产顺序性约束了事件的产生到存储的顺序,解耦后,消费顺序性约束了从存储到业务消费逻辑的顺序。两者配合才是完整的业务预期。此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-04-05 09:10:33
    赞同 展开评论
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    你好,第一个问题,除了写代码实现,还可以使用Message Queue分组:可以在Broker端为顺序消息创建一个独立的Message Queue分组,然后将这个分组只分配给一个instance,保证只有指定的instance发送顺序消息。

    第二个问题:确实不会造成乱序,为了保证消息的正确性,消费者需要对消息进行确认(ack),确保消息已经被消费,从而避免重复消费或消息丢失。

    2023-04-03 17:29:05
    赞同 展开评论

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理