美文网首页
0008.不指定partition的时候信息被发到了同一个par

0008.不指定partition的时候信息被发到了同一个par

作者: 笑着字太黑 | 来源:发表于2022-05-05 10:15 被阅读0次

    大多数资料都说不指定partition的时候信息会按照roundrobin策略发送,也就是会先算出一个partition发送,然后依次++发送。

    但是实际测试结果信息被发到了同一个partition,这是因为kafka-client的默认策略并不是roundrobin,而是Sticky Partitioner.

    解决办法是可以在生成生产者时的属性中设定:

    Map<String, Object> producerProps = kafkaProperties.buildProducerProperties();
    producerProps.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, RoundRobinPartitioner.class);
    

    roundrobin轮询的partition数量与消费者数有关。
    比如一个Topic有10个Partition,消费者数有5个,这样生产者发送的roundrobin结果是会向5个partition中发送消息而不是10个

    Apache Kafka Producer Improvements: Sticky Partitioner (confluent.io)

    相关文章

      网友评论

          本文标题:0008.不指定partition的时候信息被发到了同一个par

          本文链接:https://www.haomeiwen.com/subject/jvdlyrtx.html