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

RabbitMQ的基本概念

1:基本概念

ConnectionFactory(連線工廠): 生產Connection的的工廠

Connection(連線):是RabbitMQ的socket的長連結,它封裝了socket協議相關部分邏輯

Channel(頻道|通道): 是建立在Connection連線之上的一種輕量級的連線,我們大部分的業務操作是在Channel這個介面中完成的,包括定義佇列的宣告queueDeclare、交換機的宣告exchangeDeclare、

佇列的繫結queueBind、釋出訊息basicPublish、消費訊息basicConsume等。

Producer(生產者):生產者用於釋出訊息

Exchange(交換機):生產者會將訊息傳送到交換機,然後交換機通過路由策略(規則)將訊息路由到匹配的佇列中去

Routing Key(路由鍵):一個String值,用於定義路由規則,在佇列繫結的時候需要指定路由鍵,在生產者釋出訊息的時候需要指定路由鍵,當訊息的路由鍵和佇列繫結的路由鍵匹配時,訊息就會發送到該佇列。

Queue(佇列):用於儲存訊息的容器,可以看成一個有序的陣列,生產者生產的訊息會發送到交換機中,最終交換機將訊息儲存到某個或某些佇列中,佇列可被消費者訂閱,消費者從訂閱的佇列中獲取訊息。

Binding(繫結): Binding並不是一個概念,而是一種操作,RabbitMQ中通過繫結,以路由鍵作為橋樑將Exchange與Queue關聯起來(Exchange—>Routing Key—>Queue),這樣RabbitMQ就知道如何正確地將訊息路由到指定的隊列了,通過queueBind方法將Exchange、Routing Key、Queue繫結起來

Consumer(消費者):用於從佇列中獲取訊息,消費者只需關注佇列即可,不需要關注交換機和路由鍵,消費者可以通過basicConsume(訂閱模式可以從佇列中一直持續的自動的接收訊息)或者basicGet(先訂閱訊息,然後獲取單條訊息,再然後取消訂閱,也就是說basicGet一次只能獲取一條訊息,如果還想再獲取下一條還要再次呼叫basicGet)來從佇列中獲取訊息

vhost(虛擬主機): RabbitMQ 通過虛擬主機(virtual host)來分發訊息, 擁有自己獨立的許可權控制,不同的vhost之間是隔離的,單獨的。vhost是許可權控制的基本單位,使用者只能訪問與之繫結的vhost,預設vhost:”/” ,預設使用者”guest” 密碼“guest”,來訪問預設的vhost。