我正在尝试使用KafkaProducer
将邮件发送到ProducerRecord
。
new ProducerRecord(topicName,messageKey,message)
这使用DefaultPartitioner
,DefaultPartitioner将使用密钥的散列来确保相同密钥的所有消息都转到相同的分区。
这与使用CustomPartitioner
有什么区别?我希望Custom Partitioner也用于根据Key将消息发送到同一个分区。
答案 0 :(得分:4)
默认分区策略是
(这是从DefaultPartitioner
源代码中提取的)
自定义分区程序可让您设置自己的策略。因此,您可以例如随机分配分区,或者如果您以某种方式预先知道分区将基于此分配多大的分区。 DefaultPartitioner
的默认部分更多是关于循环策略。我想象在大多数情况下,选项1和2都会被认为是常态。