一螺捐、MQ引言
???????MQ (Message Quene) : 翻譯為
消息隊(duì)列
,通過典型的生產(chǎn)者
和消費(fèi)者
模型请梢,生產(chǎn)者不斷向消息隊(duì)列中生產(chǎn)消息忧额,消費(fèi)者不斷的從隊(duì)列中獲取消息。因?yàn)橄⒌纳a(chǎn)和消費(fèi)都是異步的良漱,而且只關(guān)心消息的發(fā)送和接收舞虱,沒有業(yè)務(wù)邏輯的侵入,輕松的實(shí)現(xiàn)系統(tǒng)間解耦母市。別名為消息中間件
矾兜。通過利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成患久。
???????當(dāng)今市面上有很多主流的消息中間件椅寺,如老牌的ActiveMQ
、RabbitMQ
蒋失、炙手可熱的Kafka
返帕、阿里巴巴自主開發(fā)RocketMQ
等,本文主要介紹RabbitMQ
的用法篙挽。
二荆萤、RabbitMQ 的引言
???????RabbitMQ是基于
AMQP
協(xié)議,Erlang
語言開發(fā),是部署最?泛的開源消息中間件,是最受歡迎的開源消息中間件之?链韭。
???????官網(wǎng)???????官網(wǎng)教程
三偏竟、基于docker 安裝RabbitMQ
1.在docker hub上搜索RabbitMq,其中后面有management的提供web管理插件
2.將需要的docker鏡像拉取下來
????docker pull rabbitmq:3.8.3-management-alpine
3.創(chuàng)建容器
????docker run -d --hostname my-rabbit --name rabbitMq -p 15672:15672 -p 5672:5672 -v /root/test/rabbitmq:/var/lib/rabbitmq -v /root/test/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf rabbitmq:3.8.3-management-alpine
注意:-v 綁定了我自己在宿主機(jī)創(chuàng)建的目錄敞峭,需按實(shí)際情況進(jìn)行修改S荒薄!儡陨!
4.訪問web界面
????http://ip:15672/
????初始賬號/密碼:guest/guest
5.用戶管理
????????Tags選項(xiàng)介紹:
???????????????超級管理員(Admin):可登陸管理控制臺褪子,可查看所有的信息量淌,并且可以對?戶骗村,策略(policy)進(jìn)行操作。
???????????????監(jiān)控者(Monitoring):可登陸管理控制臺呀枢,同時(shí)可以查看rabbitmq節(jié)點(diǎn)的相關(guān)信息(進(jìn)程數(shù)胚股,內(nèi)存使用情況,磁盤使用情況等)裙秋。
???????????????策略制定者(Policymaker):可登陸管理控制臺, 同時(shí)可以對policy進(jìn)行管理琅拌。但無法查看節(jié)點(diǎn)的相關(guān)信息。
???????????????普通管理者(Management):僅可登陸管理控制臺摘刑,無法看到節(jié)點(diǎn)信息进宝,也無法對策略進(jìn)行管理。
???????????????其他(None):無法登陸管理控制臺枷恕,通常就是普通的生產(chǎn)者和消費(fèi)者党晋。
- 創(chuàng)建虛擬主機(jī)
??????為了讓各個(gè)用戶可以互不干擾的工作,RabbitMQ添加了虛擬主機(jī)(Virtual Hosts)的概念徐块。其實(shí)就是?個(gè)獨(dú)立的訪問路徑未玻,不同用戶使用不同路徑,各自有自己的隊(duì)列胡控、交換機(jī)扳剿,互相不會影響。
7.綁定虛擬主機(jī)和用戶