進(jìn)程A訂閱A事件,進(jìn)程B訂閱B事件,客戶端定時發(fā)消息給進(jìn)程A,進(jìn)程A發(fā)布B事件,進(jìn)程B收到B事件再發(fā)布A事件。
現(xiàn)在客戶端數(shù)量和發(fā)送頻率高了以后,用status看channel_server,進(jìn)程B發(fā)布A事件時會出現(xiàn)大量send_fail
channel可以看作是要給內(nèi)存隊列,訂閱者消費速度長時間低于生產(chǎn)速度,消息就會積壓在內(nèi)存,但是內(nèi)存做不到無限存儲。所以當(dāng)緩沖區(qū)滿(大小可設(shè)置,參見發(fā)送緩沖區(qū))了就會出現(xiàn)send_fail。解決辦法降低生產(chǎn)速度或者讓消費速度高于生產(chǎn)速度。