Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka Kafka在多个线程中发布到同一分区_Apache Kafka_Spring Kafka - Fatal编程技术网

Apache kafka Kafka在多个线程中发布到同一分区

Apache kafka Kafka在多个线程中发布到同一分区,apache-kafka,spring-kafka,Apache Kafka,Spring Kafka,在一个事务中,我有数千条记录要在同一个分区上发布到Kafka。我正在使用spring KafkaTemplate进行此操作。为了提高我当前逻辑的性能,我正在考虑在多线程中发布卡夫卡。所有要发布的事件都具有相同的密钥,并且要转到相同的分区。使用多线程会导致多线程之间的偏移冲突吗?我应该坚持使用一个线程来完成所有发布吗?事务被绑定到该线程,因此您最终将得到多个事务 您是否尝试增加了linger.msproducer属性?我们在spring应用程序中使用多线程方法将MSG发布到同一卡夫卡主题,目前尚未

在一个事务中,我有数千条记录要在同一个分区上发布到Kafka。我正在使用spring KafkaTemplate进行此操作。为了提高我当前逻辑的性能,我正在考虑在多线程中发布卡夫卡。所有要发布的事件都具有相同的密钥,并且要转到相同的分区。使用多线程会导致多线程之间的偏移冲突吗?我应该坚持使用一个线程来完成所有发布吗?

事务被绑定到该线程,因此您最终将得到多个事务


您是否尝试增加了
linger.ms
producer属性?

我们在spring应用程序中使用多线程方法将MSG发布到同一卡夫卡主题,目前尚未报告任何问题。Kafka是一个基于commitlog的流程,它将新消息附加到日志中,并将偏移量提供给zookeeper以管理使用者

您的方法与多个生产者使用相同的密钥同时向一个主题发送消息的方法相同。卡夫卡可以处理这种情况,因为有一个选举产生的分区负责人

还有一个缓冲时间,直到生成的消息返回到生产者缓冲区,并在缓冲区空间满时刷新。因此,卡夫卡已经有了机制来处理使用相同密钥的信息轰炸