1. 程式人生 > >RabbitMQ之基本概念

RabbitMQ之基本概念

AMQP

AMQP,即Advanced Message Queuing Protocol,是應用層協議的一個開放標準,為面向訊息的中介軟體設計。基於此協議的客戶端與訊息中介軟體可傳遞訊息,並不受客戶端/中介軟體不同產品,不同的開發語言等條件的限制。目標是實現一種在全行業廣泛使用的標準訊息中介軟體技術,以便降低企業和系統整合的開銷,並且向大眾提供工業級的整合服務。主要實現有 RabbitMQ。

基本概念

  • 生產者

訊息的建立者,負責將訊息傳送到RabbitMQ。

  • 消費者

訊息者需要連線到RabbitMQ,並且訂閱到佇列上,進行訊息的接收。包括持續訂閱(basicConsumer)和單條訂閱(basicGet).

  • 訊息

訊息包含兩部分內容有效負荷(payload)和標籤(label)。有效負荷就是傳輸的資料,標籤就是路由鍵。

  • 通道

通道是建立在TCP連線上的一個虛擬連線,虛擬連線相當於在多執行緒環境下,每個執行緒都共享一個TCP連線,一個執行緒對應著一個通道。

在RabbitMQ中,每個通道都有自己唯一的ID,保證了通道的私有性。

為什麼不建立多個TCP連線呢?

原因是RabbitMQ為了保證效能。如果為每個執行緒建立一個TCP連線,每秒成百上千的連線建立和銷燬會嚴重消耗系統的效能。所以RabbitMQ選擇建立多個通道,而不是建立多個TCP連線。

  • 交換器、佇列、繫結、路由鍵

佇列通過路由鍵(routing  key,某種確定的規則)繫結到交換器,生產者將訊息釋出到交換器,交換器根據繫結的路由鍵將訊息路由到特定佇列,然後由訂閱這個佇列的消費者進行接收。