我知道配额是基于客户id的基本上,我想用特定的客户机id运行kafka producer perf测试,以测试配额是否正常工作我的问题是如何为特定的生产者(或)分区分配客户机id?
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);
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));
希望这有帮助。
2条答案
按热度按时间sg2wtvxw1#
创建生产者时,可以为client.id属性指定唯一值。
gzszwxb42#
可以使用producerrecord指定要发送消息的分区。说分区0。创建kafkaconsumer并将使用者分配给特定分区(在本例中为分区0)。这将确保生产者和消费者(具有给定的客户机id)都在同一个主题的分区id上工作。
向分区0生成消息
要从特定分区读取的使用者
希望这有帮助。