微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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培训就业相关技术问题欢迎关注小编!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐