消息队列生产者
Producer 是什么?
往消息队列里写消息的程序
类比:寄快递的人,填好地址把包裹交出去
它做什么
生产者负责序列化消息、决定发到哪个 Topic 和分区、批量攒消息、处理失败重试。
它不需要知道消费者是谁,也不需要等消费者处理完,这是异步解耦的起点。
三种发送方式
不同业务对可靠性和延迟的要求不同,选错方式要么丢消息,要么拖慢接口。
- 同步发送:等 Broker 确认,最可靠,RT 多几毫秒
- 异步发送:给回调,不阻塞主流程,适合高吞吐
- 单向发送:发出去就不管,可能丢,适合日志
别忽略的细节
开启幂等(enable.idempotence)可以避免重试导致的重复消息;acks=all 配合重试才能保证不丢;批量大小和 linger.ms 直接影响吞吐与延迟的平衡。