RabbitMQ官方網站非常詳細,以下只是本人學習過程的整理
一、Windows部署RabbitMQ:https://www.cnblogs.com/yangleiyu/p/15539618.html
二、Linux部署RabbitMQ叢集:https://www.cnblogs.com/yangleiyu/p/15539698.html
三、.Net Core使用RabbitMQ各種模式:會在後續文章介紹
一、概述
1、RabbitMQ的概念
RabbitMQ是實現了高階訊息佇列協議(AMQP)的開源訊息代理軟體(亦稱面向訊息的中介軟體)
RabbitMQ伺服器是用Erlang語言編寫的,Erlang是專門為高併發而生的語言,而叢集和故障轉移是構建在開發電信平臺框架上的。所有主要的程式語言均有與代理介面通訊的客戶端庫
RabbitMQ是一個在AMQP協議標準基礎上完整的,可服用的企業訊息系統。它遵循Mozilla Public License開源協議,採用 Erlang 實現的工業級的訊息佇列(MQ)伺服器
2、RabbitMQ的好處
開源,安全,可靠性高,資料能夠保證百分之百的不丟失等等
3、RabbitMq的使用場景
3.1什麼時候使用MQ?
1)資料驅動的任務依賴
2)上游不關心多下游執行結果
3)非同步返回執行時間長
3.2什麼時候不使用MQ?
需要實時關注執行結果 (同步呼叫)
4、RabbitMQ的幾種工作模式
A、簡單模式(Simple)
簡單的傳送與接收
B、工作模式(Work)
單傳送多接收,一個生產者端,多個消費者端
C、釋出訂閱模式(Publish/Subscribe)
生產者端傳送訊息,多個消費者同時接收所有的訊息
D、路由模式(Routing)
生產者按routing key傳送訊息,不同的消費者端按不同的routing key接收訊息
E、萬用字元(或主題)模式(Topics ,按topic傳送接收)
生產者端不只按固定的routing key傳送訊息,而是按字串“匹配”傳送,消費者端同樣如此。
符號“#”匹配一個或多個詞,符號“*”僅匹配一個詞。
F、死信佇列
P傳送訊息經X1路由到Q1,Q1的訊息觸發特定情況,自動把訊息經X2路由到Q2,C直接訊息Q2的訊息。
G、延時佇列
延時佇列其實也是配合死信佇列一起用。給佇列新增訊息過時時間(TTL),變成延時佇列。
延時佇列還可以設定不同的過期時間。
二、Windows安裝RabbitMQ
1、下載安裝Erlang框架
連結:https://pan.baidu.com/s/1c3SVYLrryojrZ8Pe4W0UOw
提取碼:0716
2、設定環境變數
3、測試是否安裝成功
執行CMD,輸入erl
4、下載並安裝rabbitmq-server
連結:https://pan.baidu.com/s/1zcHIIKTjjIlCNytxQnSn_A
提取碼:0716
5、切換目錄
cd C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.16\sbin
6、檢視狀態
rabbitmqctl status
7、啟動服務
rabbitmq-plugins enable rabbitmq_management
8、瀏覽地址
http://127.0.0.1:15672/,進入管理頁面,賬戶密碼都是guest
9、建立使用者
guest賬號預設是不支援遠端連線的,一般服務都不是在本地,所以需要建立使用者。
A、新增使用者
B、設定許可權
10、常用命令
rabbitmqctl list_connections ##檢視當前連線
rabbitmqctl list_queues ##列出所有佇列
rabbitmqctl status ##檢視當前佇列資訊
命令設定許可權: rabbitmqctl set_permissions -p "/" kiba "." "." ".*"