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 "." "." ".*"