互联网通用技术

背压Back-Pressure介绍

2017-03-19  本文已影响246人  大军的

背压Back-Pressure: 是指异步消费者会向生产者订阅接收消息,然后当有新的信息可用时,消费者会通过之前订阅时提供的回调函数被再次激活调用。如果生产者发出的信息比消费者能够处理消息最大量还要多,消费者可能会被迫一直在抓消息,耗费越来越多的资源,埋下潜在的崩溃风险。为了防止这一点,需要有一种机制使消费者可以通知生产者,降低消息的生成速度。生产者可以采用多种策略来实现这一要求,这种机制称为背压。

阻塞式背压是容易实现的。例如,当生产者和消费者都是在同一个线程运行时,其中一个将阻止其他线程执行。这意味着,当消费者被执行时,生产者就不能发出任何新的信息,因此需要以自然的方式平衡输入和输出的发生。然而,在有些情况下,阻塞式背压会出现不良问题(例如当生产者有多个消费者,不是所有的人都能以同样的速度消费消息时)或根本达不到降压目的(例如当消费者和生产者在不同环境中运行)。在这些情况下,背压机制以非阻塞的方式工作就是很必要的。

上一篇下一篇

猜你喜欢

热点阅读