【问题标题】:Redis / Kafka - Why stream consumers are blocked?Redis / Kafka - 为什么流消费者被阻止?
【发布时间】:2021-09-12 02:01:30
【问题描述】:

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

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

【问题讨论】:

  • 唯一完成的阻塞是等待消息。实际加工时可选
  • 实际上,建议(据我所知)是在您的业务案例允许的情况下处理“不同线程”上的消息..(不需要订购等等......)

标签: apache-kafka redis-streams


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-27
    • 2017-09-23
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2017-05-31
    相关资源
    最近更新 更多