RabbitMQ概念
RabbitMQ是流行的開源訊息佇列系統,是AMQP(Advanced Message Queuing Protocol高階訊息佇列協定)的標準實現,用erlang語言開發。RabbitMQ據說具有良好的效能和時效性,同時還能夠非常好的支援叢集和負載部署,非常適合在較大規模的分佈式系統中使用。
RabbitMQ的安裝
注:使用Package Cloud安裝時,要注意根據自己的系統版本號來安裝對應的erlang
https://packagecloud.io/rabbitmq/erlang/install#bash-rpm
下載Erlang的rpm包
RabbitMQ是Erlang語言編寫,所以Erang環境必須要有,注:Erlang環境一定要與RabbitMQ版本匹配:點選下面 下麪鏈接檢視
https://www.rabbitmq.com/which-erlang.html
Erlang下載地址:https://www.rabbitmq.com/releases/erlang/(根據自身需求及匹配關係,下載對應rpm包)
從Erlang Solution安裝(推薦)
官網下載地址:http://www.rabbitmq.com/install-rpm.html
這裏選擇Package Colud
點選跳轉後如下,安裝的快速方法是使用雲提供的包指令碼。Package Cloud還可以用來通過yum安裝最新的Erlang版本。
跳轉後,點選erlang,
選擇版本
複製命令列安裝erlang前置條件以及安裝erlang
1、安裝erlang的的前置條件的
# 新增erlang solutions源 #
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash |
#若執行上面命令報錯 Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
把/etc/yum.repos.d/epel.repo,檔案第3行註釋去掉,把第四行註釋掉。具體如下:
開啓/etc/yum.repos.d/epel.repo,將
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch |
修改爲
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch |
若安裝過程中沒有拋出什麼錯,最後提示安裝成功,就開始安裝erlang了,如下圖
2、安裝erlang(安裝過程比較慢)
yum install erlang
完成後如下
使用erl或erl -version命令檢視erlang是否安裝成功
3、安裝rabbitmq-server
安裝rabbitmq-server做前置準備:
https://packagecloud.io/rabbitmq
複製命令
執行安裝成功後,如下
Loading mirror speeds from cached hostfile * base: mirrors.cqu.edu.cn * extras: ap.stykers.moe * updates: ap.stykers.moe Package yum-utils-1.1.30-42.el6_10.noarch already installed and latest version Nothing to do Generating yum cache for rabbitmq_rabbitmq-server... Importing GPG key 0x4D206F89: Userid: "https://packagecloud.io/rabbitmq/rabbitmq-server (https://packagecloud.io/docs#gpg_signing) <[email protected]>" From : https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey Generating yum cache for rabbitmq_rabbitmq-server-source... The repository is setup! You can now install packages. [root@Field ~]#
下載RabbitMQ Server,根據自己系統版本來下載,
下載後將檔案上傳到linux系統
若直接安裝
rpm -ivh rabbitmq-server-3.8.1-1.el6.noarch.rpm
這是說沒有key,也沒有socat
點選https://www.rabbitmq.com/download.html,找到Release Signing Key,如下
點選進去,複製上面網址
命令列執行
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
再重新安裝
sudo yum install rabbitmq-server-3.7.23-1.el8.noarch
常見錯誤
如報以下錯誤,
ERROR: epmd error for host 「192」:badarg (unknown POSIX error)
修改
vi /etc/rabbitmq/rabbitmq-env.conf
追加如下設定:
NODENAME=rabbit@localhost
注:如存取失敗,看看防火牆是否允許外部存取該埠
常用命令及開啓CentOs開關防火牆命令
啓動服務及自動執行
#啓動服務
systemctl start rabbitmq-server
#檢視服務狀態
systemctl status rabbitmq-server
#重新啓動服務
systemctl restart rabbitmq-server
安裝web管理外掛
rabbitmq-plugins enable rabbitmq_management
新增防火牆埠
#新增埠
firewall-cmd --add-port=5672/tcp --permanent firewall-cmd --add-port=15672/tcp –permanent
#重新載入設定
firewall-cmd --reload
# 防火牆啓動關閉
systemctl start firewalld.service systemctl stop firewalld.service systemctl enable firewalld.service
# 檢視防火牆埠列表
firewall-cmd --permanent --list-port
出現錯誤執行
systemctl unmask firewalld
#下次需要鎖定該服務時執行
systemctl mask firewall
web管理外掛存取地址
ip地址加埠
使用者名稱:guest
密碼:guest
新增使用者操作範例
#新增使用者 使用者名稱
admin 密碼 admin web管理工具可用此使用者登錄
sudo rabbitmqctl add_user admin admin
#設定使用者角色 管理員
sudo rabbitmqctl set_user_tags admin administrator #tag(administrator,monitoring,policymaker,management)
#設定使用者許可權(接受來自所有Host的所有操作)
sudo rabbitmqctl set_permissions -p "/" admin '.*' '.*' '.*'
#檢視使用者許可權
sudo rabbitmqctl list_user_permissions admin
1.9 附常用命令