1. 程式人生 > >訊息佇列技術終結者(四)—訊息消費者以何種方式接收訊息

訊息佇列技術終結者(四)—訊息消費者以何種方式接收訊息

        訊息消費者可以同步接收訊息,也可以非同步接收訊息,一般而言,採用非同步的方式接受訊息優於採用同步的方式接受訊息,體現在:
        1、非同步方式建立的網路流量比較小,單向推送訊息並使之通過管道進入訊息監聽器。管道操作支援將多條訊息聚合為一個網路呼叫。
        2、非同步方式使用執行緒比較少。非同步方式在訊息接收者不活動期間不使用執行緒。同步方式的訊息接收者在接收呼叫期間內使用執行緒,結果執行緒可能會長時間保持空閒,尤其是該呼叫中指定了阻塞超時。
        3、使用非同步方式可以規避阻塞伺服器上執行的應用程式程式碼。別忘了:阻塞操作會使伺服器端執行緒空閒(甚至會導致死鎖)。阻塞操作使用所有執行緒時則發生死鎖,如果沒有空餘的執行緒可以處理阻塞操作自身解鎖所需的操作,則該方法則永遠處於阻塞狀態。