抱歉问了这么宽泛的问题。
试图了解我是否应该在单个微服务、多个线程上运行多个侦听器,或者每个微服务都有一个侦听器。
关于这方面的任何资源,关于值得阅读的文章?
(上下文的用例是消息被获取、转换并通过 REST 发送到另一个服务,在 Python 中完成)。
正如 Kafka 文档所说的多线程
Kafka 消费者不是线程安全的。所有网络 I/O 都发生在进行调用的应用程序的线程中。确保多线程访问正确同步是用户的责任。非同步访问将导致 ConcurrentModificationException。
正如 confluent 博客解释了kafka-consumer-multi-threaded-messaging
在实现多线程消费者架构时,需要注意的是 Kafka 消费者不是线程安全的。多线程访问必须正确同步,这可能很棘手。这就是为什么普遍使用单线程模型的原因。
所以一般来说使用单线程模式是安全且风险较小的。但是,如果您可以确保同步和并发行为,那么您可以使用多线程模式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句