對于 SLE 12 SP2,請以根使用者 root 運作下面指令:
zypper addrepo https://download.opensuse.org/repositories/devel:languages:erlang:Factory/SLE_12_SP2/devel:languages:erlang:Factory.repo
zypper refresh
zypper install erlang
修改hosts檔案
172.18.8.157live-mq-01
172.18.8.158live-mq-02
172.18.8.161live-mq-03
第一步:上傳erlang、rabbitmq安裝包
第二步:安裝erlang
rpm -ivh *rpm
第三步:安裝rabbitmq,root使用者
tar xf rabbitmq-server-generic-unix-3.7.18.tar.xz
mv rabbitmq_server-3.7.18 /data/application
cd /data/application
ln -s rabbitmq_server-3.7.18 rabbitmq_server
chown -R wasadmin.wasgroup rabbitmq_server rabbitmq_server-3.7.18
第四步:修改環境變量,wasadmin使用者
vim ~/.profile
export RABBITMQ_HOME=/data/application/rabbitmq_server
export PATH=$PATH:$RABBITMQ_HOME/sbin
第五步:修改系統檔案描述符,root使用者
ulimit -n
echo 6553560 > /proc/sys/fs/file-max
echo 'fs.file-max = 6553560' >> /etc/sysctl.conf
ulimit -n 65535
cat >> /etc/security/limits.conf << end
* soft nofile 65535
* hard nofile 65535
end
tail /etc/security/limits.conf
同步erlang.cookie檔案,通過Erlang的分布式特性(通過magiccookie認證節點)進行RabbitMQ叢集,各RabbitMQ服務為對等節點,即每個節點都提供服務給用戶端連接配接,進行消息發送與接收。
chmod 600 .erlang.cookie
root@live-mq-01:~# vim /home/wasadmin/.erlang.cookie
WJLPTHZIMFLJRTOGPYNA
root@live-mq-02:~# vim /home/wasadmin/.erlang.cookie
root@live-mq-03:~# vim /home/wasadmin/.erlang.cookie
chmod 400 .erlang.cookie
以守護程式的方式在背景運作,每個節點都需要
啟動服務:rabbitmq-server -detached
指令補充:
關閉應用:rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
關閉服務:rabbitmqctl stop 或 rabbitmqctl shutdown
檢視狀态:rabbitmqctl status
開啟manager,每個節點都需要
rabbitmq-plugins enable rabbitmq_management
在live-mq-01節點上檢視叢集資訊,此時叢集中應隻有自己。
root@live-mq-01:~# rabbitmqctl cluster_status
Cluster status of node'rabbit@live-mq-01'...
[
{nodes,[{disc,['rabbit@live-mq-01']}]},
#叢集中的節點,disc表示為磁盤模式,ram表示為記憶體模式
{running_nodes,['rabbit@live-mq-01']},
#正在運作的叢集節點
{cluster_name,<<"rabbit@live-mq-01">>},
#叢集的名稱
{partitions,[]}
]
下面将live-mq-01、live-mq-02、live-mq-03組成叢集:(叢集至少需要有1個disk節點)
mq02以disk類型加入mq01節點:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@mq01
mq03以ram類型加入mq01節點:
rabbitmqctl join_cluster rabbit@mq01 --ram
如果需要把mq02類型改為ram:
rabbitmqctl change_cluster_node_type ram
允許遠端使用者(admin)通路
rabbitmqctl add_user admin admin@2021
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
rabbitmqctl list_permissions -p /
删除預設使用者guest
rabbitmqctl delete_user guest
設定鏡像隊列政策,開啟鏡像高可用模式
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
檢視政策
rabbitmqctl list_policies
RabbitMQ退出叢集,如果mq03要退出叢集:
mq03:
叢集主節點:
rabbitmqctl forget_cluster_node rabbit@mq03
叢集如何重新開機?
一個disk節點:先啟動disk節點再啟動ram節點
多個disk節點:先啟動最後關閉的disk節點,啟動其餘disk節點,再啟動ram節點
RabbitMQ 入門系列(4)