RabbitMQ是采用Erlang語言編寫的實現(xiàn)高級消息隊列協(xié)議(AMQP)的消息中間件
參考文檔
-
rabbitmq.conf 主要寫了不同系統(tǒng)怎么找到
rabbitmq.conf
文件以及每個版本應該怎么編寫配置文件 - dockerhub rabbitmq的鏡像材部,主要找出帶管理界面的rabbitmq
- rabbitmq.conf.example 官方的一個配置案例
-
advanced.config.example 解決無法通過
rabbitmq.conf
設置的配置可以通過這個配置文件
AMQP
AMQP(Advanced Message Queuing Protocol 高級消息隊列協(xié)議)是一個進程間傳遞異步消息
的網(wǎng)絡協(xié)議
AMQP模型
AMQPM模型
專業(yè)術語解釋
-
Server
:簡單來說就是消息隊列服務器實體也可以說是broker
-
Exchange
:消息交換機,指定消息按照什么規(guī)則晓勇,路由到哪個隊列 -
Queue
:消息隊列載體痊银,每個消息都會被投入到一個或多個隊列 -
Binding
:綁定,它的作用是把exchange和queue按照路由規(guī)則綁定起來 -
Routing Key
:路由關鍵字航邢,exchange根據(jù)這個關鍵字進行消息投遞 -
Virtual host
:虛擬主機耕赘,一個broker里可以開設多個virtual host,作用不同用戶的權限邏輯分離膳殷。一個vritual host里有多個exchange和queue操骡,但同一個virtual host不能有相同的exchange和queue。 -
Product
:消息生產(chǎn)者 -
Consumer
:消息消費者 -
Channel
:消息通道赚窃,在客戶端的每個鏈接里册招,可以建立多個channel,每個channel代表一個會話任務 -
Message
:生產(chǎn)者和消費者之間傳遞的數(shù)據(jù)勒极,由properties和body組成是掰,properties對消息進行修飾,比如消息的優(yōu)先級辱匿、延遲等高級特性键痛,body就是消息體內容
安裝
我的電腦是deepin的(debian)所以對應的目錄在/etc/rabbitmq/
rabbitmq.conf
## {loopback_users, ["guest">>]},
# 禁止遠程訪問的用戶
loopback_users = none
##
loopback_users.guest = true
# default_vhost = /
default_user = guest # 賬戶密碼
default_pass = 123456
docker-compose.yml
version: '3'
services:
# rabbitmq
rabbit:
image: rabbitmq:management # 選擇帶web界面的版本
container_name: rabbit
privileged: true # 授權
ports:
- 15672:15672
- 5672:5672
volumes:
- ./config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf # 把當前的rabbitmq.conf掛載到容器中
hostname: master #指定主機名稱很重要后面集群使用
訪問
瀏覽器訪問http://localhost:15672
輸入賬戶密碼:guest/123456
可能遇到的問題
-
User can only log in via localhost
按照官方的說法禁止使用guest/guest權限通過除localhost外的訪問
# 開啟都可以遠程登錄,可以數(shù)組限制指定用戶 loopback_users = none