Kafka 如何处理 Kafka 客户端 0.10 中生产者记录分区中的负数?



在 Kafka 客户端 1.1.0 中,检查不允许负数作为ProducerRecord中的partition

https://github.com/apache/kafka/blob/1.1/clients/src/main/java/org/apache/kafka/clients/producer/ProducerRecord.java#L73

但是我在 kafka 客户端 0.10.0 中没有看到任何此类签入ProducerRecord

https://github.com/apache/kafka/blob/0.10.0/clients/src/main/java/org/apache/kafka/clients/producer/ProducerRecord.java#L62

有人可以告诉我卡夫卡如何处理partition中的负数和 0.10 中的负数ProducerRecord?分区会转换为正数吗?如果是,有人可以指出我转换的代码/逻辑吗?

对于 0.10.0 Kafka Producer,分区的负数也被拒绝。

检查不是像在最新版本中那样以ProducerRecord完成的,而是在KafkaProducer.partition()中完成的,您将获得以下堆栈跟踪:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid partition given with record: -1 is not in the range [0...0].
at org.apache.kafka.clients.producer.KafkaProducer.partition(KafkaProducer.java:717)
at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:459)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:430)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:353)

最新更新