您是否应该在一个微服务中的单独线程中运行多个 Kafka 侦听器?

抱歉问了这么宽泛的问题。

试图了解我是否应该在单个微服务、多个线程上运行多个侦听器,或者每个微服务都有一个侦听器。

关于这方面的任何资源,关于值得阅读的文章?

(上下文的用例是消息被获取、转换并通过 REST 发送到另一个服务,在 Python 中完成)。

尼普纳

正如 Kafka 文档所说的多线程

Kafka 消费者不是线程安全的。所有网络 I/O 都发生在进行调用的应用程序的线程中。确保多线程访问正确同步是用户的责任。非同步访问将导致 ConcurrentModificationException。

正如 confluent 博客解释了kafka-consumer-multi-threaded-messaging

在实现多线程消费者架构时,需要注意的是 Kafka 消费者不是线程安全的。多线程访问必须正确同步,这可能很棘手。这就是为什么普遍使用单线程模型的原因。

所以一般来说使用单线程模式是安全且风险较小的。但是,如果您可以确保同步和并发行为,那么您可以使用多线程模式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章