RocketMQ 支持的消息类型
消息类型 | 描述 | 适用场景 | 特点 |
---|---|---|---|
同步消息 | 发送方发送后阻塞,等待 Broker 返回发送结果 (ACK) 后才继续后续操作。 | 重要的通知、注册(确保消息投递成功才能继续)、对发送可靠性要求高的业务。 | - 可靠性最高 - 吞吐量相对较低 - 对发送延迟敏感 |
异步消息 | 发送方发送后不阻塞,立即返回,通过回调函数异步接收 Broker 的发送结果。 | 大部分业务场景、高并发、需要知道发送结果但又不希望阻塞的业务。 | - 可靠性高 - 吞吐量高 (非阻塞) - 异步回调机制 |
单向消息 | 发送方发送后不关心 Broker 是否成功接收,不等待任何响应。 | 日志收集、监控数据、用户行为追踪等可丢失不重要的场景。 | - 吞吐量最高 - 可靠性最低 (可能丢失) - 无回调,不等待 |
批量消息 | 将多条消息打包成一个批次发送。 | POI 上传、大量小日志入库、数据同步等发送大量小消息的场景。 | - 减少网络开销 - 提高发送效率 - 单批次有大小限制 |
延迟消息 | 消息发送后,Broker 不立即投递给消费者,而是延迟一定时间后才投递。 | 订单超时未支付关闭、定时任务、延时重试等。 | - 可定制消息投递时间 - 通常有固定延迟等级选项 |
顺序消息 | 确保一组具有业务关联的消息(如同一订单的不同步骤)按发送的顺序消费。 | 订单创建/支付/发货、库存扣减、银行流水等对顺序严格要求的业务。 | - 保证局部顺序性 (同一队列内) - 复杂度相对高 |