Kafka实战 自定义分区器 几种常见的分区器

自定义分区器

kafka topic是可以分为很多很多分区的,每一条消息在Kafka中存储的时候是要选择其中一个分区进行存储的,并且只能存在于一个分区当中。

这条消息到底该存在哪个分区当中?这个是由分区器来决定的。

分区器在Kafka当中默认采用的是哈希分区器,也就是根据消息的hash值%分区的数量,这样就可以将分区号计算出来。当然也可以根据自己的需求去定义自己的分区器。

生产者

可以看到大写字母开头的,是第三个窗口的分区收到了,说明监听的是0分区。第一个HAHAHA是因为最开始只启动了第一个消费者,所以三个分区它都消费。

后来有两个消费者上线了之后,他们各司其职,各自去消费一个分区。下面分区器的逻辑就是,大写字母、小写字母、或者不属于前面两者的都分别存放于不同的分区当中。

几种常见的分区器

随机分区器。比如有多个分区,随机返回0 1 2就行了。第一件事情就是获取所有的分区数量,得知道一共有多少分区才行。

哈希分区器 可以根据值或者key的哈希值来选择分区

轮询分区器 发送一条消息放到0分区,下一条消息放在1分区,再下一条消息放在2分区。

分区器只需要自己去写一个类去实现接口即可,具体想要做什么样的分区逻辑,在partition中实现一下就行。

相关推荐
努力努力再努力wz1 小时前
【Redis入门系列】:从 RESP 协议到 redis-plus-plus:Redis 客户端编程与 C++ 接口设计
开发语言·数据库·c++·redis·分布式·缓存·架构
starzy19901 小时前
Flink基础之Flink批流数据读取处理案例剖析:从文件到 Kafka 的完整代码
大数据·flink·kafka
青禾8372 小时前
Git 与 SVN 完全指南:从集中式到分布式的版本控制
分布式·git·svn
2301_800954992 小时前
Git 版本控制核心概念详解:从集中式到分布式
分布式·git
天天喝旺仔2 小时前
gRPC 流式通信实战:从一元调用到双向流,吃透四种 RPC 模式(Go 版)
分布式·http·微服务·rpc·go
明达智控技术17 小时前
告别停机内卷!热插拔远程IO,解锁工控运维新范式
分布式·物联网·自动化
漂着的圆木18 小时前
MCP 2026-07-28 长任务改造:别再用 HTTP 超时判断任务失败
分布式·架构·状态模式·ai agent
数智启示录1 天前
Apache Kafka Consumer 扩到 40 个仍不提速:Partition 上限锁死有效并行度 【Kafka合集】
数据库·经验分享·分布式·缓存·面试·kafka·apache
数智启示录1 天前
Apache Kafka 幂等 Producer 的边界:Exactly-Once 到了 MySQL 为什么失效 【Kafka合集】
数据库·经验分享·分布式·mysql·面试·kafka·apache