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

1yjd4xko  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(373)

在一个事务中,我有几千条记录要在同一个分区上发布到kafka。我用的是SpringKafka模板。为了提高我当前逻辑的性能,我考虑在多线程中发布Kafka。所有要发布的事件都具有相同的键,并且都要转到相同的分区。使用多线程会导致多线程之间的偏移冲突吗?我应该坚持一个线程来完成所有的发布吗?

kb5ga3dv

kb5ga3dv1#

我们正在spring应用程序中使用多线程方法将MSG发布到同一个kafka主题,目前还没有任何问题报告。kafka是一个基于commitlog的进程,它将新消息附加到日志中,并将偏移量提供给zookeeper来管理使用者。
您的方法与多个生产者使用相同的键同时向一个主题发送消息的方法相同。Kafka可以处理这种情况,因为有一个选举产生的分区领导人。
还有一个缓冲时间,直到生成的消息被备份到生产者缓冲区,并在缓冲区空间满时被刷新。所以Kafka已经有了处理用同一个键轰炸信息的机制。

to94eoyn

to94eoyn2#

事务被绑定到线程,因此您将得到多个事务。
你试过增加 linger.ms 生产者财产?

相关问题