首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同线程使用Kafka Producer

不同线程使用Kafka Producer
EN

Stack Overflow用户
提问于 2016-03-24 09:54:15
回答 2查看 12.6K关注 0票数 17

我有Kafka生产者为我的基于java的web应用程序,以推送消息到kafka。根据文档,我可以看到kafka producer是线程安全的。这是否意味着我可以拥有Kafka producer的单个实例,并由不同的线程( web请求)使用它,在我的情况下,每个线程都会打开和关闭producer。这会产生什么问题吗?或者更好的做法是按请求启动生产者?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-24 13:27:40

是的,KafkaProducer是线程安全的。

请参阅Class KafkaProducer

将记录发布到Kafka集群的Kafka客户端。

生产者是线程安全的,通常应该在所有线程之间共享,以获得最佳性能。

生产者管理单个后台线程,该线程执行I/O以及到它需要与之通信的每个代理的TCP连接。如果在使用后没有关闭生成器,则会泄漏这些资源。

票数 20
EN

Stack Overflow用户

发布于 2016-03-24 11:33:55

到目前为止,最好的方法(这是大多数有状态客户端连接器的典型,例如SQL客户端,elasticsearch客户端等)是在应用程序启动时实例化单个实例,并在所有线程之间共享它。它应该只在应用程序关闭时关闭。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36191933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档