首先kafka生产者并不能将消息发送到指定broker,消息是必然发生到leader副本所在的broker的。
假设你有3个broker,主题有6个分区,那么每个broker将分到2个分。你这里并没有提到副本,如果副本数为1,那么这6个分区唯一的副本就是leader副本。
leader副本是用来处理客户端的请求的,也包括follower复制的获取消息请求。
Kafka的高可用性也是通过副本及复制机制实现的(当其中一台包含leader副本的broker奔溃,就会从分布在其他broker的follower副本中选举leader副本)。
你能做的就是在new ProducerRecord时指定分区,每指定就会根据你配置的分区器(不指定就使用默认的分区器根据你的key(没指定将随机发送分区)算出消息的分区。

浙ICP备 15005796号-2 浙公网安备 33010602002000号

CDN 存储服务由 又拍云 赞助提供