如何将客户id分配给特定的Kafka制作者或主题?

x3naxklr  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(262)

我知道配额是基于客户id的
基本上,我想用特定的客户机id运行kafka producer perf测试,以测试配额是否正常工作
我的问题是如何为特定的生产者(或)分区分配客户机id?

sg2wtvxw

sg2wtvxw1#

创建生产者时,可以为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);
gzszwxb4

gzszwxb42#

可以使用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));

希望这有帮助。

相关问题