Kafka是如何保证消息不丢失

简介: Kafka是如何保证消息不丢失

这个保证机制很多,在发送消息到消费者接收消息,在每个阶段都有可能会丢失消息,所以我们解决的话也是从多个方面考虑

第一个是生产者发送消息的时候,可以使用异步回调发送,如果消息发送失败,我们可以通过回调获取失败后的消息信息,可以考虑重试或记录日志,后边再做补偿都是可以的。同时在生产者这边还可以设置消息重试,有的时候是由于网络抖动的原因导致发送不成功,就可以使用重试机制来解决

第二个在broker中消息有可能会丢失,我们可以通过kafka的复制机制来确保消息不丢失,在生产者发送消息的时候,可以设置一个acks,就是确认机制。我们可以设置参数为all,这样的话,当生产者发送消息到了分区之后,不仅仅只在leader分区保存确认,在follwer分区也会保存确认,只有当所有的副本都保存确认以后才算是成功发送了消息,所以,这样设置就很大程度了保证了消息不会在broker丢失

第三个有可能是在消费者端丢失消息,kafka消费消息都是按照offset进行标记消费的,消费者默认是自动按期提交已经消费的偏移量,默认是每隔5s提交一次,如果出现重平衡的情况,可能会重复消费或丢失数据。我们一般都会禁用掉自动提价偏移量,改为手动提交,当消费成功以后再报告给broker消费的位置,这样就可以避免消息丢失和重复消费了

目录
相关文章
|
消息中间件 存储 安全
聊聊 Kafka:Kafka 如何保证可靠性
聊聊 Kafka:Kafka 如何保证可靠性
711 0
|
5月前
|
消息中间件 存储 Kafka
Kafka 如何保证消息顺序及其实现示例
Kafka 如何保证消息顺序及其实现示例
133 0
|
4月前
|
消息中间件 Kafka
面试题Kafka问题之Kafka【线上】积压消费如何解决
面试题Kafka问题之Kafka【线上】积压消费如何解决
35 0
|
4月前
|
消息中间件 存储 Kafka
深入Kafka:如何保证数据一致性与可靠性?
**Kafka一致性详解:** 讲解了幂等性如何通过ProducerID和SequenceNumber确保消息唯一,防止重复处理,维持数据一致性。Kafka利用Zookeeper进行控制器和分区Leader选举,应对节点变动,防止脑裂,确保高可用性。实例中,电商平台用Kafka处理订单,保证每个订单仅处理一次,即使在异常情况下。关注微信公众号“软件求生”获取更多技术内容。
704 0
|
4月前
|
消息中间件 Java Kafka
springboot 如何保证Kafka顺序消费
【7月更文挑战第1天】在分布式消息系统中,消息的顺序性是一个重要的问题。Apache Kafka 提供了多种机制来确保消息的顺序消费,但需要根据具体的使用场景进行配置和设计。
281 0
|
6月前
|
消息中间件 Kafka
【Kafka】kafka 分布式下,如何保证消息的顺序消费?
【4月更文挑战第7天】【Kafka】kafka 分布式下,如何保证消息的顺序消费?
|
6月前
|
消息中间件 存储 NoSQL
[Kafka 常见面试题]如何保证消息的不重复不丢失
[Kafka 常见面试题]如何保证消息的不重复不丢失
257 0
|
11月前
|
消息中间件 算法 Kafka
Kafka 如何保证消息消费的全局顺序性
Kafka 如何保证消息消费的全局顺序性
|
消息中间件 缓存 Java
聊聊 Kafka:Kafka 如何保证一致性
聊聊 Kafka:Kafka 如何保证一致性
689 0
|
消息中间件 Kafka 程序员
美团面试真题,如何保证Kafka消息不丢失?
一位工作了5年的小伙伴去美团面试以后,跟我反馈说,被问到一个“如何保证Kafka消息不丢失?”的问题,不知道如何回答。其实,这道题真的很基础。 很多小伙伴可能只会回答说,消息要持久化,添加消息确认机制。如果,你只是这样回答,那就和普通的程序员没什么区别。要想让面试官感觉你确实有不一样的理解,就应该从多个方面更全面地来分析和回答这个问题。今天,我来给大家讲明白。
132 0