如何为特定的Kafka生产者或主题分配客户端ID?

5
我知道配额是基于client-id的。基本上,我想使用特定的客户端ID运行kafka-producer-perf-test来测试配额是否正常工作。
如何为特定的生产者或分区分配client-id
2个回答

7

创建生产者时,可以为client.id属性分配唯一值。

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("client.id", "testclient001");
//set any additional properties.
Producer<String, GenericRecord> producer = new KafkaProducer<String, GenericRecord>(props);

非常感谢。您的帖子帮助解决了Pentaho中Kafka生产者组件的问题。 - karan arora

0

您可以使用ProducerRecord指定要发送消息的分区,例如分区0。创建KafkaConsumer并将消费者分配给特定分区(在此示例中为分区0)。这将确保生产者和消费者(具有给定的客户端ID)都在主题的相同分区ID上工作。

ProducerRecord(java.lang.String topic, ava.lang.Integer partition, K key, V value)

向分区0发送消息

ProducerRecord<byte[],byte[]> record = new ProducerRecord<byte[],byte[]>("PerftestTopic", 0, key, value)
producer.send(record);

消费者从特定分区读取

TopicPartition partition0 = new TopicPartition("PerftestTopic", 0);
consumer.assign(Arrays.asList(partition0));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接