文章目錄
- RabbitMQ基礎編程模型
- 基礎編程模型
- step1、首先創建連接,獲取Channel
- step2、聲明Exchange-可選
- step3、聲明queue
- step4、聲明Exchange與Queue的綁定關系-可選
RabbitMQ基礎編程模型
RabbitMQ的使用生態已經相當龐大,支持非常多的業務場景,同時也提供了非常多的客戶端語言支持。
接下來我們只是通過Java語言來理解下要如何使用RabbitMQ。其他語言客戶端可以參考示例與官方文件,
自行了解。
使用RabbitMQ提供的原生客戶端API進行交互。這是使用RabbitMQ的基礎。
基礎編程模型
step1、首先創建連接,獲取Channel
通常情況下,我們在一個客戶端里都只是創建一個Channel就可以了,因為一個Channel只要不關閉,是
可以一直復用的。但是,如果你想要創建多個Channel,要注意一下Channel沖突的問題。
在創建channel時,可以在createChannel方法中傳入一個分配的int參數channelNumber。這個
ChannelNumber就會作為Channel的唯一標識。而RabbitMQ防止ChannelNumber重復的方式是:如果對
應的Channel沒有創建過,就會創建一個新的Channel。但是如果ChannelNumber已經創建過一個Channel
了,這時就會返回一個null。
step2、聲明Exchange-可選
Exchange在消息收發過程中是一個可選的步驟,如果要使用就需要先進行聲明。在聲明Exchange時需要
注意,如果Broker上沒有對應的Exchange,那么RabbitMQ會自動創建一個新的交換機。但是如果Broker上
已經有了這個Exchange,那么你聲明時的這些參數需要與Broker上的保持一致。如果不一致就會報錯。
聲明Exchange時可以填入很多參數,對這些參數,你不用死記。實際上這些參數,包括最后的
arguments中可以傳入哪些參數,在管理控制臺中都有。關鍵屬性在頁面上都有解釋。
step3、聲明queue
與Exchange一樣,如果你聲明的Queue在Broker上不存
在,RabbitMQ會創建一個新的隊列。但是如果Broker上已經有了這個隊列,那么聲明的屬性必須和Broker
上的隊列保持一致,否則也會報錯。
聲明Queue時,同樣大部分的參數是可以從管理平臺看到的。比如Durability,AutoDelete以及后面的
arguments參數可以傳哪些參數,都可以從頁面上看到。