RabbitMQ 普通集群配置_04
接上一篇:(企業級) 搭建集群 RabbitMQ SHELL腳本實戰_03
文章目錄
- RabbiMQ簡介
- RabbiMQ模式
- RabbiMQ特點
- 環境部署總覽
- 一、基礎配置及RabbitMQ 安裝
- 1. 配置hosts文件
- 2. 安裝配置RabbitMQ
- 3. 思路分析
- 二、RabiitMQ 集群配置同步
- 2.1. 拷貝erlang.cookie
- 2.2. 同步.erlang.cookie
- 2.3. 重新啟動RabbitMQ服務
- 2.4. 查看監聽端口
- 2.5. 將ly-02、ly-03作為內存節點加入ly-01節點集群中
- 2.6. ly-02 加入集群操作記錄
- 2.7. ly-03 加入集群操作記錄
- 2.8. 查看集群狀態
- 三、登錄rabbitmq web管理控制臺
- 3.1. 訪問管控臺
- 3.2. 創建新的隊列aa
RabbiMQ簡介
RabbiMQ是用Erang開發的,集群非常方便,因為Erlang天生就是一門分布式語言,但其本身并不支持負載均衡。
RabbiMQ模式
RabbitMQ模式大概分為以下三種:
- (1)單一模式。
- (2)普通模式(默認的集群模式)。
- (3) 鏡像模式(把需要的隊列做成鏡像隊列,存在于多個節點,屬于RabbiMQ的HA方案,在對業務可靠性要求較高的場合中比較適用)。
要實現鏡像模式,需要先搭建一個普通集群模式,在這個模式的基礎上再配置鏡像模式以實現高可用。
RabbiMQ特點
RabbitMQ的集群節點包括內存節點、磁盤節點。RabbitMQ支持消息的持久化
也就是數據寫在磁盤上,最合適的方案就是既有內存節點,又有磁盤節點。
環境部署總覽
| 192.168.43.242 | ly-01 | 關閉 | 磁盤節點 |
| 192.168.43.134 | ly-02 | 關閉 | 內存節點 |
| 192.168.43.228 | ly-03 | 關閉 | 內存節點 |
注意,這里三臺服務器都連接上互聯網,另外RabbitMQ集群節點必須在同一網段里,如果是跨廣域網,效果會變差。
一、基礎配置及RabbitMQ 安裝
分別登錄ly-01、ly-02、ly-03 執行以下操作:
1. 配置hosts文件
更改三臺MQ節點的計算機名分別為ly-01、ly-02 和、y-03
#修改`hosts`配置文件 vim /etc/hosts 添加內容如下: 192.168.43.242 ly-01 192.168.43.134 ly-02 192.168.43.228 ly-032. 安裝配置RabbitMQ
(企業級) CentOS7 安裝 RabbitMQ最新版本 下載、安裝、配置、運行、部署_01
3. 思路分析
上面就是需要在3臺服務器上都要RabbitMQ下載、安裝、配置、部署,那怎樣才能
快速安裝配置RabbitMQ呢?
(企業級) 搭建集群RabbitMQ 快速下載、安裝、配置、部署_02
(企業級) 搭建集群RabbitMQ SHELL腳本實戰_03
二、RabiitMQ 集群配置同步
- 登錄ly-01操作
2.1. 拷貝erlang.cookie
Rabbitmq的集群是依附于erlang的集群來工作的,所以必須先構建起erlang的集群景象。Erlang的集群中各節點是經由過程一個magic cookie來實現的,這個cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的權限。所以必須保證各節點cookie一致,不然節點之間就無法通信。
- 查看.erlang.cookie內容,每一天的內容是不一樣的
2.2. 同步.erlang.cookie
- 用scp的方式將mq01節點的.erlang.cookie的值復制到其他兩個節點中。
2.3. 重新啟動RabbitMQ服務
#運行腳本 bash rabbitmq_guard_start.sh注如果不是root用戶,請采用下面操作 #黑腳本賦予可執行權限 chmod u+x rabbitmq_guard_start.sh #運行腳本 #格式 ./config_file.sh rabbitmq_server版本 ./rabbitmq_guard_start.sh#內容如下: rabbitmq-server start &2.4. 查看監聽端口
(插件監控的端口是15672)
netstat -ntap | grep 5672 tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 8112/beam.smp tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 8112/beam.smp tcp6 0 0 :::5672 :::* LISTEN 8112/beam.smp [root@ly-01 ~]#2.5. 將ly-02、ly-03作為內存節點加入ly-01節點集群中
在ly-02、ly-03執行如下命令:
rabbitmqctl stop_app //停掉rabbit應用 rabbitmqctl join_cluster --ram rabbit@mq01 //加入到磁盤節點 rabbitmqctl start_app //啟動rabbit應用或者啟動腳本:
#運行腳本 #格式 bash join_cluster_node.sh 磁盤節點域名或者ip地址 #參考下面2個栗子,任選其一即可 bash join_cluster_node.sh ly-01 bash join_cluster_node.sh 192.168.43.242注如果不是root用戶,請采用下面操作 #給腳本賦予可執行權限 chmod u+x join_cluster_node.sh #運行腳本 #格式 ./join_cluster_node.sh 磁盤節點域名或者ip地址 #例子如下: ./join_cluster_node.sh ly-01 ./join_cluster_node.sh 192.168.43.242#添加內容如下: rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@$1 rabbitmqctl start_app2.6. ly-02 加入集群操作記錄
[root@ly-02 app]# rabbitmqctl stop_app Stopping rabbit application on node rabbit@ly-02 ... [root@ly-02 app]# rabbitmqctl join_cluster --ram rabbit@ly-01 Clustering node rabbit@ly-02 with rabbit@ly-01 [root@ly-02 app]# rabbitmqctl start_app Starting node rabbit@ly-02 ...## #### ## RabbitMQ 3.7.24. Copyright (c) 2007-2020 Pivotal Software, Inc.########## Licensed under the MPL. See https://www.rabbitmq.com/###### ############ Logs: /var/log/rabbitmq/rabbit@ly-02.log/var/log/rabbitmq/rabbit@ly-02_upgrade.logStarting broker...completed with 3 plugins. [root@ly-02 app]#2.7. ly-03 加入集群操作記錄
[root@ly-03 app]# rabbitmqctl stop_app Stopping rabbit application on node rabbit@ly-03 ... [root@ly-03 app]# rabbitmqctl join_cluster --ram rabbit@ly-01 Clustering node rabbit@ly-03 with rabbit@ly-01 [root@ly-03 app]# rabbitmqctl start_app Starting node rabbit@ly-03 ...## #### ## RabbitMQ 3.7.24. Copyright (c) 2007-2020 Pivotal Software, Inc.########## Licensed under the MPL. See https://www.rabbitmq.com/###### ############ Logs: /var/log/rabbitmq/rabbit@ly-03.log/var/log/rabbitmq/rabbit@ly-03_upgrade.logStarting broker...completed with 3 plugins. [root@ly-03 app]# (1)默認rabbitmq啟動后是磁盤節點,在這個cluster命令下,mq02和mq03是內存節點,mq01是磁盤節點。 (2)如果要使mq02、mq03都是磁盤節點,去掉--ram參數即可。 (3)如果想要更改節點類型,可以使用命令rabbitmqctl change_cluster_node_type disc(ram),前提是必須停掉rabbit應用2.8. 查看集群狀態
[root@ly-01 ~]# rabbitmqctl cluster_status Cluster status of node rabbit@ly-01 ... [{nodes,[{disc,['rabbit@ly-01']},{ram,['rabbit@ly-03','rabbit@ly-02']}]},{running_nodes,['rabbit@ly-03','rabbit@ly-02','rabbit@ly-01']},{cluster_name,<<"rabbit@ly-01">>},{partitions,[]},{alarms,[{'rabbit@ly-03',[]},{'rabbit@ly-02',[]},{'rabbit@ly-01',[]}]}] [root@ly-01 ~]#三、登錄rabbitmq web管理控制臺
3.1. 訪問管控臺
打開瀏覽器輸入http://192.168.43.242:15672,
輸入默認的Username:guest,輸入默認的Password:guest ,登錄后出現如圖所示的界面
3.2. 創建新的隊列aa
根據界面提示創建一條隊列
在RabbitMQ集群集群中,必須至少有一個磁盤節點,否則隊列元數據無法寫入到集群中,當磁盤節點宕掉時,集群將無法寫入新的隊列元數據信息。
接下一篇:
(企業級) RabbitMQ 鏡像集群配置_05
總結
以上是生活随笔為你收集整理的RabbitMQ 普通集群配置_04的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flowable实现流程回退功能
- 下一篇: RabbitMQ+haproxy+kee