消息队列-Kafka-如何进行顺序消费

全局有序

只有 1 个分区,那这个时候就是能够保证消息的顺序消费。

分区有序

如果我们还是想同时消费多个分区并且保证有序,这个时候我们需要将需要保证顺序的消息路由到同一个分区。

在发送消息的时候我们可以看到:

上面的代码定义了消息会被送到哪一个分区,我们发现起作用的是Partitioner。

继续找发现,在这里进行赋值:

我们在ProducerConfig里面可以找到只有一段,使用了默认的分区。

它底层其实就是一个MAP来存储,所有我们要想自己分区的话可以实现下面这个接口

然后指定partitioner.class为我们的class,这样就可以自定义我们的分区逻辑,这个时候把需要放到同一个分区的数据使用同样的运算逻辑放到同一个分区即可。

相关推荐
小江的记录本1 天前
【Kafka核心】Kafka高性能的四大核心支柱:零拷贝、批量发送、页缓存、压缩
java·数据库·分布式·后端·缓存·kafka·rabbitmq
ezreal_pan1 天前
Docker部署Kafka持久化遇到的各种问题及解决方案
docker·容器·kafka
ErizJ2 天前
Kafka | 学习笔记
笔记·学习·kafka
小江的记录本3 天前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
空中海3 天前
Kafka :存储、复制与可靠性
分布式·kafka·linq
渣渣盟3 天前
构建企业级实时数据管道:Kafka + Flink 最佳实践
分布式·flink·kafka
空中海3 天前
Spring Boot Kafka 项目 Demo:订单事件系统 专家知识、源码阅读路线与面试题
spring boot·kafka·linq
空中海3 天前
Kafka 基础:从消息队列到事件流平台
分布式·kafka·linq
空中海3 天前
Kafka Streams、Connect 与生态
分布式·kafka·linq
Knight_AL5 天前
从 0 到 1:PG WAL → Debezium → Kafka → Spring Boot → Redis
spring boot·redis·kafka