背壓Back-Pressure
: 是指異步消費者會向生產(chǎn)者訂閱接收消息侠草,然后當有新的信息可用時健蕊,消費者會通過之前訂閱時提供的回調(diào)函數(shù)被再次激活調(diào)用沦补。如果生產(chǎn)者發(fā)出的信息比消費者能夠處理消息最大量還要多熊痴,消費者可能會被迫一直在抓消息住练,耗費越來越多的資源,埋下潛在的崩潰風險愁拭。為了防止這一點讲逛,需要有一種機制使消費者可以通知生產(chǎn)者,降低消息的生成速度岭埠。生產(chǎn)者可以采用多種策略來實現(xiàn)這一要求盏混,這種機制稱為背壓。
阻塞式背壓是容易實現(xiàn)的惜论。例如许赃,當生產(chǎn)者和消費者都是在同一個線程運行時,其中一個將阻止其他線程執(zhí)行馆类。這意味著混聊,當消費者被執(zhí)行時,生產(chǎn)者就不能發(fā)出任何新的信息乾巧,因此需要以自然的方式平衡輸入和輸出的發(fā)生句喜。然而,在有些情況下沟于,阻塞式背壓會出現(xiàn)不良問題(例如當生產(chǎn)者有多個消費者咳胃,不是所有的人都能以同樣的速度消費消息時)或根本達不到降壓目的(例如當消費者和生產(chǎn)者在不同環(huán)境中運行)。在這些情況下旷太,背壓機制以非阻塞的方式工作就是很必要的展懈。