RabbitMQ集群部署

2022-09-04 11:42:13 字數 4044 閱讀 8271

環境:

ip主機名

作業系統

10.0.0.1

test1

centos7.2

10.0.0.2

test2

centos7.2

10.0.0.3

test3

centos7.2

一、安裝依賴環境。

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget

二、防火牆、主機與ip間的對映。

1. 關閉或設定防火牆

systemctl stop firewalld.service

systemctl disable firewalld.service

firewall-cmd --state

2. 建立主機和ip間的對映關係

vi /etc/hosts

10.0.0.1 test1

10.0.0.2 test2

10.0.0.3 test3

三、安裝erlang,因為rabbitmq基於erlang開發。

1. 安裝erlang

cd /data/tmp

tar -xvzf otp_src_18.3.tar.gz -c /usr/local/

cd /usr/local/otp_src_18.3

./configure --prefix=/usr/local/erlang

make &&make install

2. 配置環境變數

vim /etc/profile

#set erlang environment

erl_home=/usr/local/erlang

path=$erl_home/bin:$path

export erl_home path

source /etc/profile

3. 測試,如果進入erlang的shell則表示成功

erl四、安裝rabbitmq(以下為test1部署,同理部署test2、test3)。

cd /data/tmp

tar -xvzf rabbitmq-server-generic-unix-3.5.4.tar.gz -c /data/local/rabbitmq-server

cd /data/local

mv rabbitmq-server-3.5.4 rabbitmq-server

2. 配置環境變數

vim /etc/profile

# rabbitmq evironment configration

export path=$path:/data/local/rabbitmq-server/sbin

source /etc/profile

3. 啟動rabbitmq server (如提示找不到命令,請檢查環境變數路徑是否正確)

rabbitmq-server -detached

rabbitmqctl status/stop/list_users               ## 檢視狀態、停止服務、列出角色命令

rabbitmqctl cluster_status 檢視當前節點集群狀態

cluster status of node rabbit@test1 ...},,

,]4. 配置web頁面外掛程式

rabbitmq-plugins enable rabbitmq_management

5. 訪問管理頁面測試 10.0.0.1:15672 (此時沒有登入使用者)

6.  新增管理員賬號

rabbitmqctl add_user admin 123.abc                               ## 新增使用者,後面兩個引數是使用者名稱和密碼.

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"          ## 新增許可權

rabbitmqctl set_user_tags admin administrator               ## 修改使用者角色

7. 登入測試,刪除guest使用者,安裝完成。

五、配置mq集群。

1. 設定節點間認證cookie(將test1上的拷貝到其他兩台)

scp /root/.erlang.cookie 10.0.0.2:/root/

scp /root/.erlang.cookie 10.0.0.2:/root/

重啟test2、test3的mq服務。

2. 加入到test1的集群(分別在test2、test3上操作)

rabbitmqctl join_cluster rabbit@test1       # 加入集群

rabbitmqctl cluster_status                         # 檢視集群狀態,test2、test3都執行完集群應該有三個節點

3. 測試(停掉其中一台,看集群狀態的變化)

六、退出集群(當某台機器不需要再存在於集群中時,test3為例)。

2. rabbitmqctl reset                         ## 踢出集群

4. rabbitmqctl cluster_status           ## 檢視該機器當前集群狀態

七、重要提示。

(1)、應為rabbitmq管理後台部署nginx**,以防其中乙個節點down掉的時候**到其他節點。

(3)、如果所有的節點不受控制的同時宕機,比如掉電,會進入所有的節點都會認為其他節點比自己宕機的要晚,即自己先宕機,這種情況下可以使用force_boot指令來啟動乙個節點。

八、其他

1. 關於使用者

新增使用者:rabbitmqctl add_user username password

刪除使用者:rabbitmqctl delete_user username

修改密碼:rabbitmqctl  change_password  username  newpassword

檢視當前使用者列表:rabbitmqctl  list_users

2. 關於角色(五類系統角色)

a. 角色分類

administrator 超級管理員:可檢視所有的資訊,可以對使用者,策略進行操作。

monitoring 監控者:可登陸管理控制台檢視rabbitmq節點的相關資訊(程序數、記憶體、磁碟使用情況等)。

policymaker 策略制定者:可登陸管理控制台對policy進行管理。但無法檢視節點的相關資訊。

management 普通管理者:僅可登陸管理控制台,無法看到節點資訊,也無法對策略進行管理。

其他使用者:無法登陸管理控制台,通常就是普通的生產者和消費者。

b. 相關命令

修改使用者角色:rabbitmqctl set_user_tags username administrator

也可以賦予多個角色:rabbitmqctl set_user_tags username administrator monitoring

3. 關於許可權(使用者許可權指的是使用者對exchange,queue的操作許可權)

a. 許可權分類

配置許可權:配置許可權會影響到exchange,queue的宣告和刪除。

讀寫許可權:讀寫許可權影響到從queue裡取訊息,向exchange傳送訊息以及queue和exchange的繫結(bind)操作。

b. 相關命令

設定使用者許可權:使使用者admin具有在vhost1這個/virtual host中所有資源的配置、寫、讀許可權

rabbitmqctl set_permissions -p /vhost1 user_admin '.*' '.*' '.*'

檢視(指定hostpath)所有使用者的許可權資訊

rabbitmqctl list_permissions -p /vhost1

檢視指定使用者的許可權資訊

rabbitmqctl list_user_permissions user

清除使用者的許可權資訊

rabbitmqctl clear_permissions -p /vhost1 user

RabbitMQ集群部署

第一步 獲取rabbitmq映象 docker pull rabbitmq management第二步 啟動mq docker run d hostname rabbit1 name myrabbit1 p 15672 15672 p 5672 5672 e rabbitmq erlang cook...

Rabbitmq映象集群部署

位址 環境 兩台伺服器作為兩個節點,把node 003加入node 002 192.168.95.129 node 002 192.168.95.130 node 003 1.配置環境host,兩個節點的host都需要包含每個節點的資訊,資訊要一致。下面是在node 002中的操作。node 003...

docker部署RabbitMQ集群

rabbitmq 有三種模式 單機模式,普通集群模式,映象集群模式。單機模式即單獨執行乙個 rabbitmq 例項,而集群模式需要建立多個 rabbitmq例項。1 普通集群模式 概念 預設的集群模式。需要建立多個 rabbitmq 節點。但對於 queue 和訊息來說,只存在於其中乙個節點,其他節...