Message Queue
多執行緒系列:Blocking Queue 概念與實作
Queue 是個先前先出(First In First Out, FIFO)的資料結構;Blocking Queue 是為了 thread-safe 而誕生的,可以讓不同的生產者和消費者 threads 添加或刪除 item,依然保持資料正確
RabbitMQ — 如何保證消息可靠性?
訊息傳遞的過程中有三種可能遺失的情境:Producer端送到RabbitMQ時丟失:外界環境問題導致: 發生網路丟包、網路故障等造成訊息丟失。程式碼層面、配置層面導致訊息丟失。RabbitMQ儲存的訊息丟失:訊息沒有持久化。磁碟意外損壞導致訊息同步失敗。
Message Queue之基本概念
同步與非同步任務在進入Message Queue之前我們先來了解一下同步/非同步任務的概念。菜單稱為訊息(Message), 為工作內容描述。送出菜單的客人稱為生產者(Producer), 負責建立訊息。櫃台就相當於Queue, 負責接單並依序處理。
關於Message Queue的幾個常見傳輸協定
AMQP協議Advanced Message Queuing Portocol(高級訊息佇列協議)Producer: 生產者, 負責生產訊息並送到交換機。Broker: Message Queue的服務器(RabbitMQ…之類的產品)Exchange: 交換器, 它指定訊息按照什麼樣的規則送到哪個Queue。