【发布时间】:2021-02-13 17:00:50
【问题描述】:
我是否遗漏了什么,或者没有办法使用 Redis 流产生背压?如果生产者将数据推送到流中,消费者可以更快地消费它,则没有明显的方法可以向生产者发出信号表明它应该停止或放慢速度。
我预计会有XADD 的阻塞版本,它会阻塞客户端,直到空间在有上限的流中可用(类似于XREAD 的阻塞版本,它允许消费者等待数据可用) ,但似乎并非如此。
人们如何处理上述情况 - 向生产者发出信号,表示它应该推迟向流中添加更多项目?
据我了解,Kafka 等一些数据流系统不需要背压,但 Redis 似乎没有可比的解决方案,而且对于许多 Redis 流用例来说,这似乎是一个相对常见的问题。
【问题讨论】:
-
这里有同样的问题,很难使用 redis 流,而对流边界和内存消耗的控制很少