rabbitmq實(shí)現(xiàn)可以使用java或者springboot的封裝方法,自己創(chuàng)建實(shí)現(xiàn)躯舔,也可以使用中間件實(shí)現(xiàn)驴剔,相對(duì)于自建,使用rabbitmq應(yīng)用場(chǎng)景及使用更系統(tǒng)安全粥庄。本文具體介紹rabbitmq中間件部署丧失。
消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合惜互,異步消息布讹,流量削鋒等問(wèn)題實(shí)現(xiàn)高性能,高可用训堆,可伸縮和最終一致性[架構(gòu)] 使用較多的消息隊(duì)列有 ActiveMQ(安全)描验,RabbitMQ,ZeroMQ坑鱼,Kafka(大數(shù)據(jù))膘流,MetaMQ,RocketMQ
在實(shí)際應(yīng)用中常用的使用場(chǎng)景:異步處理鲁沥,應(yīng)用解耦呼股,流量削鋒和消息通訊四個(gè)場(chǎng)景
以下本人linux部署步驟:
安裝erlang(rabbitmq需要該語(yǔ)言運(yùn)行)
配置相關(guān)依賴(lài)環(huán)境
##yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel socat
下載安裝包(本人rabbitmq要求的版本是22以上)
cd /home/erlang
wget http://www.erlang.org/download/otp_src_23.3.tar.gz
解壓并安裝
tar -xzvf otp_src_23.3.tar.gz
cd otp_src_23.3
./configure --prefix=/usr/local/erlang
make && make install
配置環(huán)境
vim /etc/profile
###為文件添加值start:
ERL_PATH=/home/erlang/otp_src_23.3/bin
PATH=$ERL_PATH:$PATH
###end
source /etc/profile 使配置生效,在shell中使用
查看安裝情況
erl -version 查看版本號(hào)
#啟動(dòng)erlang命令
./bin/erl
下載rabbitmq安裝包
rabbitmq官網(wǎng)下載地址:https://www.rabbitmq.com/ 下載壓縮包(注意下載linux版的,類(lèi)似:rabbitmq-server-3.9.6-1.el7.noarch.rpm
)本人下載的 centos7相應(yīng)版本:在window機(jī)中下載相關(guān)包上傳到linux機(jī)中
rpm包安裝后沒(méi)具象文件位置集画恰,相關(guān)文件應(yīng)該是融入主文件里其他位置中彭谁,使用模糊查詢(xún),查看安裝位置允扇,如: rpm -aq rabbitmq*
安裝rabbitmq
##安裝命令
rpm -Uvh rabbitmq-server-3.9.6-1.el7.noarch.rpm
##若報(bào)錯(cuò):erlang >= 23.2 被 rabbitmq-server-3.9.6-1.el7.noarch 需要缠局;可使用如下命令:(nodeps是忽視依賴(lài)關(guān)系,可不加)
rpm -ivh --nodeps rabbitmq-server-3.8.16-1.el7.noarch --force --nodeps
啟動(dòng)rabbitmq
service rabbitmq-server start
# 配置用戶(hù)及WEBUI插件
##啟用插件:
rabbitmq-plugins enable rabbitmq_management
##添加用戶(hù):
rabbitmqctl add_user admin admin
##設(shè)置用戶(hù)tag:
rabbitmqctl set_user_tags admin administrator
##賦予用戶(hù)默認(rèn)vhost的全部操作權(quán)限:
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
##開(kāi)機(jī)自動(dòng)啟動(dòng)
chkconfig rabbitmq-server on
訪(fǎng)問(wèn)Rabbitmq http://xxx.xxx.xxx.xxx:15672/
默認(rèn)賬號(hào)密碼:guest guest 只能在本地訪(fǎng)問(wèn)
使用新添用戶(hù):admin admin
訪(fǎng)問(wèn)即可,創(chuàng)建成功:
其他命令
1考润、可以查看服務(wù)狀態(tài):
[root@localhost ~]# rabbitmqctl status
2狭园、重啟服務(wù):
[root@localhost ~]# service rabbitmq-server restart
Restarting rabbitmq-server (via systemctl):
[ 確定 ]
3、關(guān)閉服務(wù)
[root@localhost ~]# service rabbitmq-server stop
4糊治、重置服務(wù)
[root@localhost ~]# service rabbitmq-server reset
force_reset
強(qiáng)制RabbitMQ node還原到最初狀態(tài).
不同于reset 妙啃, force_reset 命令會(huì)無(wú)條件地重設(shè)node,不論當(dāng)前管理數(shù)據(jù)庫(kù)的狀態(tài)和集群配置是什么。它只能在數(shù)據(jù)庫(kù)或集群配置已損壞的情況下才可使用。
執(zhí)行reset和force_reset之前揖赴,必須停止RabbitMQ application
將RabbitMQ node還原到最初狀態(tài).包括從所在群集中刪除此node,從管理數(shù)據(jù)庫(kù)中刪除所有配置數(shù)據(jù)馆匿,如已配置的用戶(hù)和虛擬主機(jī),以及刪除所有持久化消息.
角色及權(quán)限
1.RabbitMQ的用戶(hù)角色分類(lèi):
none燥滑、management渐北、policymaker铭拧、monitoring、administrator
2.RabbitMQ各類(lèi)角色描述:
none
不能訪(fǎng)問(wèn) management plugin
management
用戶(hù)可以通過(guò)AMQP做的任何事外加:
列出自己可以通過(guò)AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和關(guān)閉自己的channels 和 connections
查看有關(guān)自己的virtual hosts的“全局”的統(tǒng)計(jì)信息呕臂,包含其他用戶(hù)在這些virtual hosts中的活動(dòng)肪跋。
policymaker
management可以做的任何事外加:
查看、創(chuàng)建和刪除自己的virtual hosts所屬的policies和parameters
monitoring
management可以做的任何事外加:
列出所有virtual hosts谜洽,包括他們不能登錄的virtual hosts
查看其他用戶(hù)的connections和channels
查看節(jié)點(diǎn)級(jí)別的數(shù)據(jù)如clustering和memory使用情況
查看真正的關(guān)于所有virtual hosts的全局的統(tǒng)計(jì)信息
administrator
policymaker和monitoring可以做的任何事外加:
創(chuàng)建和刪除virtual hosts
查看阐虚、創(chuàng)建和刪除users
查看創(chuàng)建和刪除permissions
關(guān)閉其他用戶(hù)的connections
3.創(chuàng)建用戶(hù)并設(shè)置角色
可以創(chuàng)建管理員用戶(hù)蚌卤,負(fù)責(zé)整個(gè)MQ的運(yùn)維;可以創(chuàng)建RabbitMQ監(jiān)控用戶(hù),負(fù)責(zé)整個(gè)MQ的監(jiān)控;可以創(chuàng)建某個(gè)項(xiàng)目的專(zhuān)用用戶(hù)咸灿,只能訪(fǎng)問(wèn)項(xiàng)目自己的virtual hosts