kafka保证消息有序性

kafka 保证有序性

背景:消息是按照生产顺序发布到 kafka 上

接着,会经历两个阶段:这两个阶段都可能会导致消息的乱序

  • 第一个阶段:根据 topic 将消息放到对应 partition

    如果是随机投放消息到多个 partition 中,这会导致需要被有序消费的消息被 kafka 并行处理。

    原因:partition是Kafka并行度调优的最小单元。

    解决方式:确保需要被有序消费的消息处于同一个 partition

    1. 建立只有一个分区的 topic
    2. 对该 topic 建立多个分区,但需要在发消息时指定 partition key,kafka 会进行 Hash 计算(这种比第一种可以提高该 topic 的吞吐量)
  • 第二个阶段:consumer 消费该 partition 的消息

    如果有多个消费者线程去消费,会导致乱序。

    原因:因为每个消费者线程都在内存中用个队列存放消息,它们之间是并发处理的。

    解决方式:确保需要被有序消费的消息处于同一个消费者线程

    1. 消费端使用单线程模型
    2. 使用多线程模型,但需要利用消息的唯一标识(可通过 Hash )将他们分配到同一个消费者线程上
相关推荐
珠***格7 小时前
双碳目标下:四可装置如何助力光伏消纳与碳数据上报
网络·人工智能·分布式·安全·边缘计算
科力锐品牌君9 小时前
行业龙头|科力锐全链路防勒索 + 多中心容灾方案,构筑河南翔宇医疗业务安全闭环!
网络·数据库·分布式·安全·数据安全·备份
wear工程师13 小时前
Kafka 消费者心跳正常,为什么还会被踢出组?拆清 max.poll.interval.ms
java·kafka
WHS-_-202213 小时前
基于网络感知自适应树与辅助路由加速地理分布式机器学习
网络·分布式·机器学习
Kripath_Rion15 小时前
带你速通计算机经典论文(一):分布式系统篇
分布式·后端·架构
ACP广源盛1392462567316 小时前
Ling‑3.0‑flash 昇腾 0‑Day 适配落地@ACP#IX9104 在国产高密度算力矩阵中的机遇与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
ACP广源盛1392462567320 小时前
Ling‑3.0‑flash 昇腾 0‑Day 适配落地@ACP#IX8024 在国产算力矩阵中的机遇与应用场景
大数据·人工智能·分布式·单片机·嵌入式硬件
阿无,21 小时前
SpringCloudAlibaba Seata分布式事务 TCC模式
分布式
独行侠影a1 天前
SpringBoot 分布式锁实战:Redisson 解决订单超卖并发问题
spring boot·分布式·后端
运维行者_2 天前
网络监控与ITSM集成:从告警到工单,实现运维自动化闭环
开发语言·网络·分布式·后端·架构·flask·php