Kafka 生产者(Producer)发送消息主要有三种模式。这三种模式的区别在于生产者如何处理发送结果(响应),从而在吞吐量(性能)和可靠性(数据安全性)之间做出不同的权衡。 这三种模式分别是: 1. 发后即忘(Fire-and-Forget) 2. 同步发送(Synchronous Send) 3. 异步发送(Asynchronous Send) --- 1. 发后即忘 (Fire-and-Forget) 生产者调用 方法发送消息,但不关心消息是否成功到达。它不等待 Future 返回,也不注册回调函数。 代码示例: 特点: 吞吐量最高:不需要等待网络响应。 可靠性最低:如果发送失败(例如 Broker 宕机、网络断开),生产者无法感知,会导致数据丢失。 注意:虽然 Kafka 自身有重试机制,但在这种模式下,如果重试多次依然失败,或者在发送出去之前就抛出异常(如序列化失败),数据就会丢失。 适用场景: 日志收集、用户点击流数据等允许少量数据丢失、但对性能要求极高的场景。 --- 2. 同步发送 (Synchronous Send) 生产者调用 方法发送消息,该方法返回一个 ...