首页 文章

如何将client-id分配给特定的kafka 生产环境 者或主题?

提问于
浏览
2

我知道配额是基于客户端ID的

基本上我想用特定的客户端id运行kafka-producer-perf-test来测试配额是否正常工作

我的问题是如何为特定的 生产环境 者(或)分区分配客户端ID?

2 回答

  • 3

    在创建生成器时,可以为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);
    
  • 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));
    

    希望这有帮助 .

相关问题