首页 > 其他分享 >kafka消息重复消费和消息丢失

kafka消息重复消费和消息丢失

时间:2022-08-28 20:22:33浏览次数:54  
标签:消费 重复 kafka 丢失 提交 位移 消息

重复消费

在 Kafka 消费的编程逻辑中位移提交是一大难点,自动提交消费位移的方式非常简便,它免去了复杂的位移提交逻辑,让编码更简洁。但随之而来的是重复消费和消息丢失的问题。假设刚刚提交完一次消费位移,然后拉取一批消息进行消费,在下一次自动提交消费位移之前,消费者崩溃了,那么又得从上一次位移提交的地方重新开始消费,这样便发生了重复消费的现象(对于再均衡的情况同样适用)。我们可以通过减小位移提交的时间间隔来减小重复消息的窗口大小,但这样并不能避免重复消费的发送,而且也会使位移提交更加频繁。

消息丢失auto.commit.enable=true,消费端自动提交offersets设置为true,当消费者拉到消息之后,还没有处理完 commit interval 提交间隔就到了,提交了offersets。这时consummer又挂了,重启后,从下一个offersets开始消费,之前的消息丢失了。

Kafka避免消息丢失的解决方案: (1)设置auto.commit.enable=false,每次处理完手动提交。确保消息真的被消费并处理完成。 (2)配置消息重试的机制,并且重试的时间间隔一定要长一些,默认 1 秒钟不符合生产环境(网络中断时间有可能超过 1秒)。 (3)配置多个副本,保证数据的完整性。 (4)合理设置flush间隔。kafka 的数据一开始就是存储在 PageCache 上的,定期 flush 到磁盘上的,也就是说,不是每个消息都被存储在磁盘了,如果出现断电或者机器故障等,PageCache 上的数据就丢。

标签:消费,重复,kafka,丢失,提交,位移,消息
From: https://www.cnblogs.com/zhaoyanhaoBlog/p/16633551.html

相关文章

  • vue——消息订阅与发布(pubsub)
    一.消息订阅与发布:一种组件间通信的方式,适用于任意组件间通信订阅消息:设置消息名==>接收数据的组件进行订阅消息发布消息:传递消息内容==>传递数组的组件进行发布消......
  • 重新编译kafka_exporter源码,构建镜像
    1.githubhttps://github.com/danielqsj/kafka_exporter 2.dockerfileFROMgolang:1.17ENVGO111MODULE=on\GOPROXY="https://goproxy.cn,direct"COPYkafka_......
  • 268. 丢失的数字
     labuladong题解思路难度简单640收藏分享切换为英文接收动态反馈给定一个包含 [0,n] 中 n 个数的数组 nums ,找出 [0,n] 这个范围内没有出现在数组中的......
  • Flink 消费 Kafka 数据后在写回 Kafka 示例
    今天介绍一下Flink从kafka读取数据后,再将数据写回kafka的一个案例示例代码/***从一个topic读取数据,在写回另一个topic*/publicclassSinkToKafka0824{......
  • RabbitMQ 入门系列:6、保障消息:不丢失:发送方、Rabbit存储端、接收方。
    系列目录RabbitMQ入门系列:1、MQ的应用场景的选择与RabbitMQ安装。RabbitMQ入门系列:2、基础含义:链接、通道、队列、交换机。RabbitMQ入门系列:3、基础含义:持久化、......
  • 如何保证消息队列的高可用?
    如何保证消息队列的高可用?面试官心理分析如果有人问到你MQ的知识,高可用是必问的。上一讲提到,MQ会导致系统可用性降低。所以只要你用了MQ,接下来问的一些要点肯......
  • MQ的消息丢失/重复/积压的问题解决
    在我们实际的开发过程中,我们肯定会用到MQ中间件,常见的MQ中间件有kafka,RabbitMQ,RocketMQ。在使用的过程中,我们必须要考虑这样一个问题,在使用MQ的时候,我们怎么确保消息100%......
  • Kafka相关问题
    Kafka有哪几个部分组成生产者、消费者、topic、group、partitionkafka的group1)定义:即消费者组是Kafka提供的可扩展且具有容错性的消费者机制。在Kafka中,消费者组是一个......
  • Kafka的简单使用
    下面目的主要是进行简单测试kafka,比如在其他网络中已提供了IP和地址,进行kafka的读取,自已不想再写代码:环境要求:存在java环境:1、下载Kafka的程序https://kafka.apache.or......
  • wx小程序订阅消息概念和应用场景理解(一次性消息一定要人手动触发)
     订阅消息(一次性订阅)和模板消息的区别 原小程序模板消息接口于2020年1月10日下线  订阅消息的特点1. 开发者订阅一次后,只能为其下发一条消息(没有效量限制,将交由......