kafka的数据的分区策略有几种

探究的是kafka的数据生产出来之后究竟落到了哪一个分区里面去了
四种策略
第一种分区策略:给定了分区号,直接将数据发送到指定的分区里面去
第二种分区策略:没有给定分区号,给定数据的key值,通过key取上hashCode进行分区
第三种分区策略:既没有给定分区号,也没有给定key值,直接轮循进行分区
第四种分区策略:自定义分区

四种策略的Java实现
其他的代码都不需要变,只需要更改ProducerRecord()里面的值即可

producer.send(new ProducerRecord<String, String>(“test”, Integer.toString(i), Integer.toString(i)));
1、kafka的第一种分区方式,如果给定了分区号,那么就直接将数据发送到指定的分区号里面去
producer.send(new ProducerRecord<String, String>(“test”,2,“helloworld”,i+""));
2、kafka的第二种分区策略,没有给定分区号,给定了数据的key,那么就通过key取hashcode,将数据均匀的发送到三台机器里面去。
注意如果实际工作当中,要通过key取上hashcode来进行分区,那么就一定要 保证key的变化,否则,数据就会全部去往一个分区里面。
producer.send(new ProducerRecord<String, String>(“test”,i+"",i+""));
3、kafka的第三种分区策略,既没有给定分区号,也没有给定数据的key值,那么就会按照轮循的方式进行数的发送。
producer.send(new ProducerRecord<String, String>(“test”,i+""));
4、kafka的第四种分区策略,自定义分区类,实现我们数据的分区。

了解更多java培训就业相关技术问题欢迎关注小编!

相关文章

# 前言 现有主流消息中间件都是生产者-消费者模型,主要角色...
错误的根源是:kafka版本过高所致,2.2+=的版本,已经不需要...
DWS层主要是存放大宽表数据,此业务中主要是针对Kafka topic...
不多BB讲原理,只教你怎么用,看了全网没有比我更详细的了,...
终于写完了,其实最开始学kafka的时候是今年2月份,那时候还...
使用GPKafka实现Kafka数据导入Greenplum数据库踩坑问题记录(...