kafka以其高性能、高吞吐、可扩展等出色能力,被广泛应用在各行各业,是事件流处理平台和消息队列中的佼佼者,但是经常可以看到有人在吐槽kafka消息丢失,但是真的是kafka的锅吗,本文我们就来认真分析一下到底哪些场景可能导致消息丢失以及使用怎么样的方案可以防止消息丢失。
Kafka 简介Kafka 是一种高吞吐、分布式、基于发布和订阅模型的消息系统,最初是由 LinkedIn 公司采用 Scala 和 java 开发的开源流处理软件平台,目前是 Apache 的开源项目。
1)首先当 Producer 向 Broker 发送数据后,会进行 commit, 如果 commit 成功, 由于 Replica 副本机制的存在,则意味着消息不会丢失,但是 Producer 发送数据给 Broker 后来,遇到网络问题而造成通信中断,那么 Producer 就无法准确判断该消息是否已经被提交,这就可能造成 at least once 语义 。