标准答案

  1. Producer 产生消息并发送到 Broker;Broker 负责持久化、路由、复制和向消费者提供消息。
  2. Topic 常表示按主题组织的逻辑消息流,Queue 常表示等待被消费的具体队列;RabbitMQ、Kafka 等产品的实现与命名不同,不能机械等同。
  3. Consumer 从 Broker 拉取或接收消息并处理;处理成功后确认,失败时按策略重试、转死信或人工补偿。
  4. Consumer Group 表示一组协作消费同一逻辑流的消费者,通常每条消息在组内只由一个成员处理,以获得并行度和故障接管。

题目解析

理解这些名词的重点是分清广播与竞争消费。一个事件是否应被多个独立系统各处理一次,和同一业务任务是否只应由一个 worker 完成,决定了 Topic、订阅和组的设计。

消息组件并不替业务定义成功。消费确认前应该完成哪些数据库写入、是否允许副作用重试,仍由业务幂等和状态机决定。

常见误区

  • 把一个 Consumer Group 的多个实例当成广播订阅者,期待每个实例都收到同一条消息。
  • 不区分 broker 接收确认和消费者业务处理确认。

作者信息