摘要:
我们在查阅 Domain-Driven Design(DDD)相关资料时,经常会看到 CQRS(Command Query Responsibility Segregation)。继续深挖后又会牵出 Event Sourcing、Outbox、最终一致性等概念,越看越容易混乱。本文做一次简明整理:CQRS 到底有哪几种常见设计方式,以及在实际项目中该如何选择。 阅读全文
posted @ 2026-06-02 13:47
中华人民共和国程序员
阅读(241)
评论(0)
推荐(2)

上一篇文章中已经通过一个实际的业务场景结合RabbitMQ的四种交换机类型对RabbitMQ发布订阅模式同一消费者多个实例如何防止重复消费这个问题给出了解决方案。水这篇的目的主要是再给出一个可以直接抄作业的代码。
微服务架构模式中,服务间的通信一般采用HTTP、RPC或者MQ(消息队列)。在这三种方案中,HTTP和RPC是一对一的方式,通常用来进行查询或者命令式的操作,MQ则多用于事件的发布和处理。
在实际项目中我们通常会遇到一种情况:事件有多个订阅者,有的订阅者部署多个实例,要求每个事件只需要发布一次,每个订阅者都要能收到且仅能有其中一个实例收到并进行处理。
简单说就是既要所有订阅者都能收到消息,又要保证每个订阅者只能消费一次,不能重复消费。那么在使用RabbitMQ作为消息中间件时应该如何处理这个问题?
浙公网安备 33010602011771号