iOS RabbitMQ整合及使用

2021-07-17 03:56:19 字數 2039 閱讀 7711

ios rabbitmq整合及使用

rabbitmq是流行的開源訊息佇列系統,用erlang語言開發。rabbitmq是amqp(高階訊息佇列協議)的標準實現。如果不熟悉amqp,直接看rabbitmq的文件會比較困難。不過它也只有幾個關鍵概念,這裡簡單介紹。

rabbitmq的結構圖如下:

幾個概念說明:

broker:簡單來說就是訊息佇列伺服器實體。

exchange:訊息交換機,它指定訊息按什麼規則,路由到哪個佇列。

queue:訊息佇列載體,每個訊息都會被投入到乙個或多個佇列。

binding:繫結,它的作用就是把exchange和queue按照路由規則繫結起來。

routing key:路由關鍵字,exchange根據這個關鍵字進行訊息投遞。

vhost:虛擬主機,乙個broker裡可以開設多個vhost,用作不同使用者的許可權分離。

producer:訊息生產者,就是投遞訊息的程式。

consumer:訊息消費者,就是接受訊息的程式。

channel:訊息通道,在客戶端的每個連線裡,可建立多個channel,每個channel代表乙個會話任務。

訊息佇列的使用過程大概如下:

(1)客戶端連線到訊息佇列伺服器,開啟乙個channel。

(2)客戶端宣告乙個exchange,並設定相關屬性。

(3)客戶端宣告乙個queue,並設定相關屬性。

(4)客戶端使用routing key,在exchange和queue之間建立好繫結關係。

(5)客戶端投遞訊息到exchange。

exchange接收到訊息後,就根據訊息的key和已經設定的binding,進行訊息路由,將訊息投遞到乙個或多個佇列裡。

exchange也有幾個型別,完全根據key進行投遞的叫做direct交換機,例如,繫結時設定了routing key為」abc」,那麼客戶端提交的訊息,只有設定了key為」abc」的才會投遞到佇列。對key進行模式匹配後進行投遞的叫做topic交換機,符號」#」匹配乙個或多個詞,符號」*」匹配正好乙個詞。例如」abc.#」匹配」abc.def.ghi」,」abc.*」只匹配」abc.def」。還有一種不需要key的,叫做fanout交換機,它採取廣播模式,乙個訊息進來時,投遞到與該交換機繫結的所有佇列。

rabbitmq支援訊息的持久化,也就是資料寫在磁碟上,為了資料安全考慮,我想大多數使用者都會選擇持久化。訊息佇列持久化包括3個部分:

(1)exchange持久化,在宣告時指定durable => 1

(2)queue持久化,在宣告時指定durable => 1

(3)訊息持久化,在投遞時指定delivery_mode => 2(1是非持久化)

如果exchange和queue都是持久化的,那麼它們之間的binding也是持久化的。如果exchange和queue兩者之間有乙個持久化,乙個非持久化,就不允許建立繫結。

整合

對於ios來說網上很少有關於mq的使用與整合,所以今天我就寫這一篇日誌來說一下簡單mq整合。

使用cocoapods插入庫檔案

pod'rmqclient', '~> 0.9.0'  (注:如果插入失敗,則使用pod'rmqclient',)

執行pod install

直接上**:

匯入標頭檔案 oc版本

#import

傳送訊息:(簡單的傳送訊息,具體還要配合後台使用共同的方式和佇列)

- (void)send 

接收訊息:

- (void)receive ];

當然還有其他方式傳送和接收要求和後台對應 具體可以參照

這有詳細說明我在這就不過多說了。

java EasyExcel整合及工具類使用

com.alibaba easyexcel 1.1.2 beta5 實體類繼承baserowmodel 對需要匯出或者匯入的字段增加 excelproperty註解,index值為對應excel中的列,value為表頭,format為日期格式化 public class persondto exte...

java EasyExcel整合及工具類使用

com.alibaba easyexcel 1.1.2 beta5 實體類繼承baserowmodel 對需要匯出或者匯入的字段增加 excelproperty註解,index值為對應excel中的列,value為表頭,format為日期格式化 public class persondto exte...

Android AutoLayout整合使用

由於android螢幕尺寸眾多的情況,android適配一直是個問題,谷歌推出了百分比布局,本人有使用,但是百分比布局在部分時候適配並不是那麼完美,偶然機會看到鴻洋大神推出的autolayout,在公司也開始廣泛使用,本人也由百分比布局轉為autolayout,大神寫的帖子太深奧,使用時候本菜鳥覺得...