想搭建鏡像,也需要從單節點一步步往下,按順序執行,應該不會有什麼問題
準備工作:
1、設置主機名(根據自己主機的情況設置,主機名不能有.)
hostnamectl set-hostname node01 ### 節點01
hostnamectl set-hostname node02 ### 節點02
hostnamectl --pretty
hostnamectl --static
hostnamectl --transient
2、相關軟件
otp_src_22.1.tar.gz (erlang)
rabbitmq-server-3.8.1-1.el7.noarch.rpm
csdn下載
https://download.csdn.net/download/qq_38263123/12011605
百度雲鏈接:https://pan.baidu.com/s/1K5gHF_9T9TI1LeJ2xuOfNw
提取碼:7rwu
\單節點部署:
1、安裝依賴軟件(安裝前可檢查是否已存在,存在則無需安裝)
rpm -qa | grep gcc ### 查看gcc是否存在
yum install gcc gcc-c++ autoconf ncurses-devel openssl-devel socat net-tools ### 聯網的情況下安裝,否則需要下載相關軟件進行安裝
2、安裝erlang
tar -xvf otp_src_22.1.tar.gz
cd otp_src_22.1
./configure
make && make install
3、設置環境變量
vi /etc/profile
export ERLANG_HOME=/usr/local/lib/erlang
export PATH=$PATH:$ERLANG_HOME/bin
source /etc/profile ### 環境變量生效
erl ## 測試erlang
4、安裝rabbitmq
rpm -ivh --nodeps rabbitmq-server-3.8.1-1.el7.noarch.rpm
5、在節點上啓動rabbit
systemctl start rabbitmq-server.service
6、啓動RabbitMQWeb管理插件
rabbitmq-plugins enable rabbitmq_management
可通過瀏覽器訪問http://192.168.153.2:15672或者http://192.168.153.3:15672
集羣創建
1、設置各節點hosts文件(注意ip和主機名匹配)
vi /etc/hosts
192.168.153.2 node01
192.168.153.3 node02
2、將node01中的/var/lib/rabbitmq/.erlang.cookie文件拷貝到node02,重啓各基點rabbit服務
scp [email protected]:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
systemctl restart rabbitmq-server.service ### 重啓服務
網上方法:
在複製的時候需要臨時修改cookie文件的權限:
chmod 777 /var/lib/rabbitmq/.erlang.cookie
拷貝完畢後再把權限修改回來:
chmod 400 /var/lib/rabbitmq/.erlang.cookie
個人實際好像沒有操作這一步?最後也成功了,不知道爲什麼要這樣
3、將node02添加到集羣
(1)rabbitmqctl stop_app
如果報錯,權限問題:
02:51:59.717 [error] Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces
解決方法:
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
(2)rabbitmqctl join_cluster --ram rabbit@node01
(3)rabbitmqctl start_app
3、設置鏡像策略(選擇任一節點操作即可)
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
rabbitmq集羣節點操作
節點恢復過程中把數據刪掉很重要,恢復一單結點,再清數據
節點增加:
1. rabbitmq-server -detached --- .erlang.cooike的權限,400 屬主rabbitmq
2. rabbitmqctl stop_app
3. rabbitmqctl join_cluster --ram rabbit@node01 ### 添加內存節點
4. rabbitmqctl start_app
5. rabbitmqctl cluster_status
節點刪除
1. rabbitmq-server -detached
以上爲基礎,正常運行的mq節點直接進行2、3兩步;4可省略或更改爲rabbitmqctl stop
2. rabbitmqctl stop_app
3. rabbitmqctl reset
4. rabbitmqctl start_app
硬刪除:
直接刪掉集羣中的某個節點:
rabbitmqctl forget_cluster_node node_name
rabbitmqctl list_vhosts
創建用戶、資源以及分配操作權限
配置——>進入容器:docker container exec -it myrabbit /bin/bash
新增用戶:rabbitmqctl add_user xxx(賬號) xxx(密碼)
查看用戶:rabbitmqctl list_users
設置管理員:rabbitmqctl set_user_tags xxx(賬號) administrator(權限)
添加虛擬環境:rabbitmqctl add_vhost xxx(名稱)
查看:rabbitmqctl list_vhosts
設置權限:給這個用戶所有權限:rabbitmqctl set_permissions -p xxx(賬號) xxx(密碼) ".*" ".*" ".*"
到這裏 搭建完集羣,建好賬號,設置好權限,相信集羣已經完成搭建了:
那麼如何使用python+RabbitMQ 呢?
官方文檔:
https://www.rabbitmq.com/getstarted.html
RabbitMQ 支持(以下是官方入門"第一課"文檔鏈接,照着來就能跑起來)