我偶然发现了这篇quora帖子,它给了我一种打击?我的完全反应式项目会有问题吗?
https://www.quora.com/Why-do-so-many-developers-dislike-Apache-Kafka
主要的一点是,kafka的消费者在试图订阅一个主题时都会阻塞,即使他们只在最初订阅一个主题或当连接断开时也是如此。这可能会导致潜在的大量阻塞调用,从而耗尽线程池的有限数量。
有没有人可以解释一下,并提供一个解决这个问题的方法?我正在使用Reactor-kafka库,ReactiveKafkaConsumerTemplate。
发布于 2019-12-26 05:04:04
Reactor kafka会在辅助线程上运行任何阻塞代码,以便不阻塞不应该被阻塞的主事件循环(众所周知),并且使用,您可以设置ReceiverOptions,以便这些阻塞调用不会饿死其他线程。
下面是包装Kafka消费者的KafkaReceiver实现,正如我所见,到处都使用调度程序来确保这一点。加上创建KafkaConsumer的here's,它是在runnable的run()方法中创建的。
https://stackoverflow.com/questions/59061542
复制相似问题