rabbitmq部署 從單節點到集羣,到鏡像

想搭建鏡像,也需要從單節點一步步往下,按順序執行,應該不會有什麼問題

準備工作:
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 支持(以下是官方入門"第一課"文檔鏈接,照着來就能跑起來)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章