首页 > 解决方案 > Redis / Kafka - 为什么流消费者被阻止?

问题描述

Kafka 流/redis 流是否适合反应式架构?我问这个主要是因为 redis 和 kafka 在使用消息时似乎都在阻塞线程。

这背后有什么原因吗?我希望我可以通过一些回调读取消息 - 所以当消息像发布/订阅一样以反应方式传递时执行。不是通过阻塞线程。

标签: apache-kafkaredis-streams

解决方案


Kafka 客户端相对较低级别,“好”的地方在于:它为您提供了很大的灵活性,您何时(以及在哪个线程中)进行记录处理。最后,要接收记录,需要有人阻止(因为实际读取是一遍又一遍地发送获取请求)。被阻塞的线程是“主要业务”线程还是某个侧 i/o 专用线程将取决于开发人员的选择。

您可能会查看更高级别的产品,例如 Spring-Kafka 或 Kafka Stream API / Kafka Connect 框架,它们提供“更胖”的控制反转容器,有效地回答了上述问题。


推荐阅读