【问题标题】:How to assign client-id to a particular Kafka Producer or Topic?如何将客户端 ID 分配给特定的 Kafka 生产者或主题?
【发布时间】:2022-04-03 17:23:05
【问题描述】:

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

如何为特定的生产者(或)分区分配client-id

【问题讨论】:

    标签: apache-kafka kafka-producer-api


    【解决方案1】:

    创建生产者时,可以为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 生产者组件中的问题
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      相关资源
      最近更新 更多