1、Linux環(huán)境搭建
本次搭建操作目錄:/opt/mq/rabbit
RabbitMQ依賴的是Erlang語言,所以要先安裝Erlang的環(huán)境。Erlang在1991年由愛立信公司向用戶推出了第一個版本,經過不斷的改進完善和發(fā)展,在1996年愛立信又為所有的Erlang用戶提供了一個非常實用且穩(wěn)定的OTP軟件庫并在1998年發(fā)布了第一個開源版本。Erlang同時支持的操作系統(tǒng)有l(wèi)inux,windows,unix等,可以說適用于主流的操作系統(tǒng)上,尤其是它支持多核的特性非常適合多核CPU,而分布式特性也可以很好融合各種分布式集群。
Erlang與RabbitMQ對應版本:https://www.rabbitmq.com/which-erlang.html
本次搭建使用版本:erlang-23.3.4.8-1.el7、rabbitmq-3.8.27-1-el7
值得注意的是:如果是CentOS7.x版本,選擇el7版本,如果是CentOS版本,選擇el8版本,通過cat? /proc/version可以查看具體內核
1.1、Erlang安裝????????
- Erlang下載:?地址:Releases · rabbitmq/erlang-rpm · GitHub,選擇
erlang-23.3.4.8-1.el7
版本
- Erlang安裝:將下載好的
rpm
安裝包,上傳到服務器中,執(zhí)行以下命令進行安裝:rpm -ivh erlang-23.3.4.8-1.el7.x86_64.rpm
1.2、RabbitMQ安裝
- RabbitMQ下載:地址:Releases · rabbitmq/rabbitmq-server · GitHub,選擇
rabbitmq-3.8.27-1-el7
版本
- RabbitMQ安裝:將下載好的
rpm
安裝包,上傳到服務器中,依次執(zhí)行以下命令進行安裝:
yum install socat -y
rpm -ivh rabbitmq-3.8.27-1-el7.noarch.rpm
1.3 、RabbitMQ相關命令
1.添加開啟啟動命令
chkconfig rabbitmq-server on
2.啟動服務
/sbin/service rabbitmq-server start
3.停止服務
/sbin/service rabbitmq-server stop
4.查看服務狀態(tài)
/sbin/service rabbitmq-server status
1.4、web管理插件?
RabbitMQ的可視化管理界面需要進行插件的安裝,安裝過程如下:
rabbitmq-plugins enable rabbitmq_management
?創(chuàng)建登錄賬號:
# 創(chuàng)建賬號,add_user后面分別為:賬戶 密碼
rabbitmqctl add_user admin admin
# 設置用戶角色
rabbitmqctl set_user_tags admin administrator
# 設置用戶權限
# rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
查看用戶列表:
rabbitmqctl list_users
測試登錄:
可視化界面的默認端口為15672
,訪問時:ip:15672
即可;
1.5、卸載
卸載前先停止rabbitmq服務 :
/sbin/service rabbitmq-server stop
查看rabbitmq安裝的相關列表:
yum list | grep rabbitmq
卸載rabbitmq:?
yum -y remove rabbitmq-server.noarch
?卸載erlang:
# 依次執(zhí)行以下命令
yum -y remove erlang-*
yum remove erlang.x86_64
?刪除有關的所有文件 :
rm -rf /usr/lib64/erlang
rm -rf /var/lib/rabbitmq
rm -rf /usr/local/erlang
rm -rf /usr/local/rabbitmq
2、Docker環(huán)境搭建
docker搭建rabbitmq的版本為3.8.27
2.1、拉取鏡像
docker pull rabbitmq:3.8.27-management
2.2、創(chuàng)建掛載目錄
mkdir -p /root/docker/rabbitmq
2.3、啟動容器
# 啟動容器并且指定web管理的賬戶密碼
docker run -d --hostname rabbit01 --name rabbitmq \
-p 15672:15672 -p 5672:5672 \
-v /root/docker/rabbitmq/data:/data/rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.8.27-management
2.4、開啟web頁面管理
# 進入容器
docker exec -it rabbitmq /bin/bash
# 開啟web頁面插件
rabbitmq-plugins enable rabbitmq_management
登錄web頁面:
地址:http://ip:15672
用戶密碼及密碼:admin/admin
2.5、創(chuàng)建用戶
# 進入容器
docker exec -it rabbitmq /bin/bash
# 創(chuàng)建賬號,add_user后面分別為:賬戶 密碼
rabbitmqctl add_user admin2 admin2
# 設置用戶角色
rabbitmqctl set_user_tags admin2 administrator
# 設置用戶權限
# rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin2 ".*" ".*" ".*"
# 查看用戶列表
rabbitmqctl list_users
3、RabbitMQ核心概念
生產者
產生數(shù)據(jù)發(fā)送消息的程序是生產者
交換機
?交換機是 RabbitMQ 非常重要的一個部件,一方面它接收來自生產者的消息,另一方面它將消息推送到隊列中。交換機必須確切知道如何處理它接收到的消息,是將這些消息推送到特定隊列還是推送到多個隊列,亦或者是把消息丟棄,這個得有交換機類型決定
隊列
隊列是 RabbitMQ 內部使用的一種數(shù)據(jù)結構,盡管消息流經 RabbitMQ 和應用程序,但它們只能存儲在隊列中。隊列僅受主機的內存和磁盤限制的約束,本質上是一個大的消息緩沖區(qū)。許多生產者可以將消息發(fā)送到一個隊列,許多消費者可以嘗試從一個隊列接收數(shù)據(jù)。
消費者
消費與接收具有相似的含義。消費者大多時候是一個等待接收消息的程序,同一個應用程序既可以是生產者又是可以是消費者。
4、工作原理
Broker: 接收和分發(fā)消息的應用,就是RabbitMQ Server
Connection: publisher/consumer 和 broker 之間的 TCP 連接
Channel: Channel 是在 connection 內部建立的邏輯連接,每個線程創(chuàng)建單獨的 channel 進行通訊,Channel 作為輕量級的 Connection 極大減少了操作系統(tǒng)建立 TCP connection 的開銷
Exchange: message 到達 broker 的第一站,根據(jù)分發(fā)規(guī)則,匹配查詢表中的 routing key,分發(fā) 消息到 queue 中去。常用的類型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)
Queue: 消息最終被送到這里等待consumer 取走文章來源:http://www.zghlxwxcb.cn/news/detail-844908.html
Virtual Hosts: 一個Vhost就相當于一個 庫,不同的Vhost之間的Exchange、Queue不同文章來源地址http://www.zghlxwxcb.cn/news/detail-844908.html
到了這里,關于(一)丶RabbitMQ搭建及配置在Linux+Docker環(huán)境下的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!