我是RxJava的初学者,我很好奇" backpressure" 的含义。
这是否意味着生产者给消费者带来压力?
或者这是否意味着消费者对生产者施加压力? (相反方向的压力)
答案 0 :(得分:5)
RxJava Backpressure
当你有一个可观察物品发出如此之快的物品时,消费者无法跟上导致已发射但未消耗物品存在的流量。
背景压力策略处理的是由观察者发出但未被订阅者消费的未消耗物品如何被管理和控制。
由于需要系统资源来处理背压,因此您需要选择适合您需求的正确背压策略。
答案 1 :(得分:1)
考虑一种情况,例如您有大量数据。传感器会发射大量数据,并以高速率发射。
在这种情况下,我们需要反压,用简单的话来说就是处理无法处理的项目的一种方式。
现在,为了缓解这种压力,我们明确指定了不同的反压策略,例如
Demystifying RxJava Backpressure on Android at Uber Engineering
答案 2 :(得分:0)
我读了很多有关背压的信息,但是直到我遇到Jonas(反应式宣言的共同作者)的帖子时,我才满意。我希望这可以澄清您对背压的怀疑。
当一个组件努力跟上时,整个系统 需要以明智的方式做出回应。这是不可接受的 处于压力下的组件会灾难性地失败或将消息放入 不受控制的时尚。既然不能应付,就不可能失败 应向上游传达其承受压力的事实 组件,以减少负担。这个背压是 重要的反馈机制,可让系统正常运行 对负载做出反应而不是在负载下崩溃。背压可能 一直到用户级联,此时响应能力可能 降级,但是这种机制将确保系统具有弹性 负载,并将提供可能允许系统使用的信息 本身以应用其他资源来帮助分配负载,请参阅 弹性。