Kafka 消息有序性问题

Kafka 消息有序性问题

业务场景

在某些场景下,需要保证消息的有序性,比如同一个账号的买票退票改签信息,但是当此主题下有多个分区时,往往不能保证其有序性。

原因分析

当 kafka 的一个 topic 存在多个 partition 时,是无法保证数据的顺序性的,但是同一个 partition 中的数据是有顺序的。

技术建议

我们来回顾 kafka 的基础结构:

  • kafka 的消息组织方式是三级结构:主题-分区(副本)-消息。主题下的每条消息只会保存在某一份分区中,不会在多个分区中保存多份。
  • 分区是实现负载均衡以及高吞吐量的关键。
  • 常见分区策略:轮询、随机、按消息键保序。
  • 消息重试时不会换分区,只是简单地将消息重新发送到之前的分区。

解决方案

保证同一批因果依赖的消息分到一个分区,在此案例中就是将同一个账号的操作信息都发往一个分区。

相关推荐
fQ9F9I58m39 分钟前
Redis 分布式锁进阶第三百一十一篇
数据库·redis·分布式
mqiqe1 小时前
面试题-Zookeeper 面试篇
分布式·zookeeper·面试
极客先躯1 小时前
高级java每日一道面试题-2026年02月07日-实战篇[Docker]-如何使用存储插件(如 NFS、Ceph)?
运维·分布式·容器·自动化·文件·插件·高可用
西凉的悲伤3 小时前
redis和数据库实现分布式锁
java·数据库·redis·分布式
爱吃牛肉的大老虎3 小时前
Kafka集群之抛弃 Zookeeper
分布式·zookeeper·kafka
李白客3 小时前
分布式交易型数据库:数字时代交易系统的“定海神针“
数据库·分布式
JAVA面经实录9173 小时前
ZooKeeper 面试题完整标准答案(面试背诵版)
分布式·zookeeper·面试
知识分享小能手3 小时前
Hadoop学习教程,从入门到精通, ZooKeeper 分布式协调服务 — 全面知识点与案例代码(5)
hadoop·分布式·zookeeper
Solis程序员4 小时前
Kafka 灾难回放机制:基于事件事实流的计数全量恢复方案
分布式·kafka
Elias不吃糖4 小时前
RabbitMQ vs Kafka 简单总结
java·分布式·kafka·rabbitmq