中间件速查手册
消息队列消费者

Consumer 是什么?

从消息队列里读消息并处理的程序

类比:收快递的人,凭取件码去驿站拿包裹

拉还是推

Kafka 是消费者主动拉(pull),自己控制节奏,不会被打爆;RocketMQ 和 RabbitMQ 表面是推(push),底层其实是长轮询拉取。

拉模式的好处是消费者永远不会被压垮,坏处是没有消息时会空转,所以都有长轮询机制。

消费语义

「消费成功」的标准由你定义:只要不抛异常就算成功,还是必须业务落库成功?这决定了 offset 什么时候提交。

  • 处理失败要有限次重试,超过阈值进死信队列
  • 消费逻辑必须幂等:重复消息不能造成重复扣款
  • 慢消费要监控 lag,堆积是故障的前兆

它出现在这些中间件里

相关概念