消息模型篇:Topic、Queue、Partition 与 Consumer Group
理解消息队列,关键是理解 Topic、Queue、Partition、Consumer Group 和 Offset 如何共同决定投递、并发和顺序。
栏目
按年份
理解消息队列,关键是理解 Topic、Queue、Partition、Consumer Group 和 Offset 如何共同决定投递、并发和顺序。
Kafka 的核心不是传统队列,而是分布式提交日志。它通过分区、顺序追加、批量 IO 和消费者 Offset 支撑高吞吐数据流。
RabbitMQ、RocketMQ、Pulsar 都能处理消息,但它们的设计重心不同:路由、业务消息、云原生分层架构分别是关键词。
消息可靠性不是一句 MQ 保证就够了,它需要生产者确认、Broker 持久化、消费者 Ack、幂等处理和补偿机制一起工作。
事务消息解决的是本地事务与消息发送之间的一致性问题,最终一致性则依赖幂等、补偿和对账收敛。
延迟消息适合业务触发后的未来动作,但订单超时取消这类场景还需要状态校验、幂等和补偿扫描。
消息队列选型不要只看吞吐,还要看业务语义、消费模型、延迟、顺序性、事务能力、运维成本和团队经验。
电商下单链路里的消息队列要服务异步解耦、库存协同、支付回调、超时关闭、通知和报表,同时保证幂等与补偿。
Kafka + Flink 是实时数据链路里的经典组合,Kafka 负责承接数据流,Flink 负责清洗、窗口计算和状态处理。