目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

大数据全系列 教程

1869个小节阅读:466k

收藏
全部开发者教程

408考研

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(234)
赞(0)

生产者_分区策略

全局查找DefaultPartitioner,先关闭IDEA中打开的所有类,根据自己IDEA的提示选择全局搜索对应的快捷键:按两下Shift键

输入DefaultPartitioner

点击进入DefaultPartitioner.class,如下图所示

这样的源码不便于阅读。

为了方便阅读源码,需要关联我们下载的kafka-3.0.1-src.tgz。

  1. 将kafka-3.0.1-src.tgz解压到D:\devsoft\src

  2. 点击 Choose Sources

  3. 选择kafka源码文件夹

  4. 点击OK

  5. 然后进入到源码阅读

    默认分区类的描述信息:

    • 分区原则一:指明partition的情况下,直接将指定的值作为分区值。例如partition=1,对应数据就如分区1。
    • 分区原则二:没有具体的partition值而有key的情况下,消息要被发送到的目标分区号partition=Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions
    • 分区原则三:既没有partition值也没有key的情况下,Kafka采用stickyPartitionCache.partition(topic, cluster) 黏性分区器,会随机选择一个分区,并尽可能一直使用该分区,待该分区的batch已满或linger.ms设置的时间到了,再随机一个分区进行使用(通常和上一次的分区不同)。

实时效果反馈

1. 关于Kafka分区策略的描述,正确的是:

A 指明partition的情况下,直接将指定的值作为分区值。例如partition=1,对应数据就如分区1。

B 没有具体的partition值而有key的情况下,消息要被发送到的目标分区号partition=Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions。

C 既没有partition值也没有key的情况下,Kafka采用黏性分区器,会随机选择一个分区,并尽可能一直使用该分区,待该分区的batch已满或linger.ms设置的时间到了,再随机一个分区进行使用(通常和上一次的分区不同)。

D 以上三个选项都正确。

答案:

1=>D

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2