当前位置: 首页 > article >正文

kafka是如何处理数据乱序问题的?

1.数据有序

生产者发送的数据,单分区内可以做到有序,多分区无法保证,除非把多个分区的数据拉取到消费端,进行排序,但是这样做效率很低,不如直接设置一个分区

2.数据乱序

1)kafka在1.x版本之前保证数据单分区有序,条件如下:

        max.in.flight.requests.per.connection=1(不需要考虑是否开启幂等性)

2)kafka在1.x及以后版本保证数据单分区有序,条件如下:

        1.开启幂等性

        max.in.flight.requests.per.connection需要设置小于等于5。

        2.未开启幂等性

        max.in.flight.requests.per.connection需要设置为1。

        原因:因为在kafka1.x之后,启用幂等性后,kafka服务端会缓存producer发来的最近5个request的元数据,所以无论如何都会保证最近5个request的数据是有序的。

出现乱序的原因:

出现乱序的原因:

1)生产者在发送3请求的时候,发生异常,发生异常需要重新发送,所以排在了后面,在进行落盘的时候,先落盘1,2 ,落盘3的时候发现是4,需要等,等到3出现为止,然后将 3,4 ,5排序,排序后再进行落盘。

顺序错乱了,会自动排序(开启幂等性)。


http://www.kler.cn/a/392583.html

相关文章:

  • Python →爬虫实践
  • 什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性
  • 文献解读-DNAscope: High accuracy small variant calling using machine learning
  • 在 Ubuntu 上安装 `.deb` 软件包有几种方法
  • 【深度解析】CSS工程化全攻略(1)
  • 【前端】JavaScript高级教程:线程机制与事件机制
  • Java代码操作ZooKeeper(使用原生 ZooKeeper 客户端库)
  • UE5 设置Sequence播完后返回起始位置
  • hadoop报错找不到主类
  • 苹果低价版Vision Pro 推迟至2027年发布:XR领域的变局与挑战
  • TypeORM在Node.js中的应用
  • 缓存雪崩问题及解决方法
  • C# 异步Task异常处理和堆栈追踪显示
  • iOS 18.1,未公开的新功能
  • OpenStack讲解和实例
  • 2022年蓝桥杯JavaB组 省赛 题目解析(含AC_Code)
  • 【达梦数据库】MYSQL迁移到DM字符集转换问题-UTF8mb4|转UTF8(UTF8mb3)
  • Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新
  • AI绘画经验(stable-diffusion)
  • 如何理解DDoS安全防护在企业安全防护中的作用
  • 力扣(LeetCode)611. 有效三角形的个数(Java)
  • adworld - stack2
  • 基于 Express+JWT + Vue 的前后端分离架构
  • 黄色校正电容102j100
  • 树莓派(Raspberry Pi)Pico 2 C_C++开发环境配置(Docker+SDK)
  • SpringBoot后端解决跨域问题