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

自定义分区器

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

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

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

生产者

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

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

几种常见的分区器

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

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

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

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

相关推荐
donk131414 小时前
React Native for OpenHarmony 实战:三方库 react-native-step-indicator 的鸿蒙化适配指南
分布式·react native·react.js·wpf·harmonyos
梅菲塔亚17 小时前
Ceph分布式存储
分布式·ceph
acrel718 小时前
Acrel-1000系列分布式光伏监控系统在湖北荆门一马光彩大市场屋顶光伏发电项目中应用
分布式·光伏并网
程序 代码狂人19 小时前
金融数仓体系与核心业务知识详解
大数据·分布式·spark
RobinXYuan19 小时前
【Kafka 源码手记】02 Kafka 的核心哲学:Everything Is A Log
kafka·源码阅读
java_nnnn21 小时前
Redis 初识:从单体架构到分布式架构的演进
redis·分布式·架构
Sayai21 小时前
Kafka 2.8→3.9.1 跨大版本升级实战:ZooKeeper 同步升级、数据目录迁移与回滚预案全流程
大数据·运维·分布式·zookeeper·kafka
敲上瘾1 天前
分布式系统——Redis哨兵:自动故障转移与选举原理
linux·数据库·redis·分布式·缓存·微服务
微三云 - 廖会灵 (私域系统开发)2 天前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php