Redis / Kafka - 为什么流消费者被阻止?

Redis / Kafka - Why stream consumers are blocked?

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

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

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

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