centos6.9 搭建rabbitmq 3.6.8集羣

一、概述

RabbiMQ是用Erang開發的,集羣非常方便,因爲Erlang天生就是一門分佈式語言,但其本身並不支持負載均衡。

 

RabbiMQ模式

RabbitMQ模式大概分爲以下三種:
(1)單一模式。
(2)普通模式(默認的集羣模式)。
(3) 鏡像模式(把需要的隊列做成鏡像隊列,存在於多個節點,屬於RabbiMQ的HA方案,在對業務可靠性要求較高的場合中比較適用)。
要實現鏡像模式,需要先搭建一個普通集羣模式,在這個模式的基礎上再配置鏡像模式以實現高可用。

 

RabbiMQ特點

RabbitMQ的集羣節點包括內存節點、磁盤節點。RabbitMQ支持消息的持久化
也就是數據寫在磁盤上,最合適的方案就是既有內存節點,又有磁盤節點。

 

二、正式搭建

環境

操作系統 ip 主機名 配置
centos 6.9 192.168.31.7 mq_01 1核2g
centos 6.9 192.168.31.216 mq_02 1核2g
centos 6.9 192.168.31.214 mq_03 1核2g

 

 

 

 

 

 

注意,這裏三臺服務器都連接上互聯網,另外RabbitMQ集羣節點必須在同一網段裏,如果是跨廣域網,效果會變差。

 

配置hosts文件

修改主機名

更改三臺MQ節點的計算機名分別爲mq_01、mq_02 和mq_03,然後修改hosts配置文件

vim /etc/hostname

內容如下:

mq_01

其他兩臺操作相同,內容不一樣。

 

增加hosts記錄

vi /etc/hosts

內容如下:

192.168.31.7 mq_01
192.168.31.216 mq_02
192.168.31.214 mq_03

其他兩臺操作相同,內容也是一樣。

爲了讓主機名永久生效,重啓3臺服務器。

reboot -f

 

配置yum源

3臺服務器都安裝一下

yum install -y epel-release

 

安裝erlang

3臺服務器都安裝一下

wget https://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el6.x86_64.rpm
yum install -y socat
rpm -ivh erlang-19.0.4-1.el6.x86_64.rpm

 

安裝rabbitmq-server

3臺服務器都安裝一下

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server-3.6.8-1.el6.noarch.rpm
rpm -ivh rabbitmq-server-3.6.8-1.el6.noarch.rpm

 

創建目錄

3臺服務器都執行一下

mkdir -p /data/log/rabbitmq
mkdir -p /data/rabbitmq/mnesia
chown -R rabbitmq.rabbitmq -R /data/log/rabbitmq /data/rabbitmq/mnesia

 

創建配置文件

3臺服務器都執行一下

vi /etc/rabbitmq/rabbitmq-env.conf

內容如下:

RABBITMQ_LOG_BASE=/data/log/rabbitmq
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia

 

 啓動rabbit

3臺服務器都執行一下

/etc/init.d/rabbitmq-server start

 

拷貝erlang.cookie

Rabbitmq的集羣是依附於erlang的集羣來工作的,所以必須先構建起erlang的集羣景象。Erlang的集羣中各節點是經由過程一個magic cookie來實現的,這個cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的權限。所以必須保證各節點cookie一致,不然節點之間就無法通信。

 

登錄到mq_01節點,查看erlang.cookie

# cat /var/lib/rabbitmq/.erlang.cookie 
RUIRJRRZDNYEHCCWITRS

 

用scp的方式將mq_01節點的.erlang.cookie的值複製到其他兩個節點中。

scp /var/lib/rabbitmq/.erlang.cookie root@192.168.31.216:/var/lib/rabbitmq/.erlang.cookie

scp /var/lib/rabbitmq/.erlang.cookie root@192.168.31.214:/var/lib/rabbitmq/.erlang.cookie

 

設置權限,另外2臺都執行一下

chown -R rabbitmq.rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie

 

安裝插件

RabbitMQ提供了一個非常友好的圖形化監控頁面插件(rabbitmq_management),讓我們可以一目瞭然看見Rabbit的狀態或集羣狀態。

 

3臺服務器都執行一下

rabbitmq-plugins enable rabbitmq_management

 

查看端口

netstat -napt|grep 5672

 

加入mq01節點集羣中

將mq_02、mq_03作爲內存節點加入mq01節點集羣中

在mq_02、mq_03執行如下命令:

 

停掉rabbit應用

rabbitmqctl stop_app

 

加入到磁盤節點

rabbitmqctl join_cluster --ram rabbit@mq_01

 

啓動rabbit應用

rabbitmqctl start_app

(1)默認rabbitmq啓動後是磁盤節點,在這個cluster命令下,mq02和mq03是內存節點,mq01是磁盤節點。
(2)如果要使mq02、mq03都是磁盤節點,去掉--ram參數即可。
(3)如果想要更改節點類型,可以使用命令rabbitmqctl change_cluster_node_type disc(ram),前提是必須停掉rabbit應用

 

查看集羣狀態

3臺節點,都執行一下

rabbitmqctl cluster_status

 

添加管理用戶

3臺節點,都執行一下

rabbitmqctl add_user admin 'admin123'
rabbitmqctl set_permissions -p / admin . . .
rabbitmqctl set_user_tags admin administrator

解釋:

第一行命令表示,創建用戶admin,密碼爲admin123

第二行命令表示,admin用戶對virtual host爲'/'所有資源,具有配置,寫,讀權限。注意:後面3個點表示這3個權限。

第三行命令表示,爲admin用戶分配管理員權限。

 

登錄rabbitmq web管理控制檯

打開瀏覽器輸入http://192.168.31.7:15672,

用戶名:admin,密碼:admin123

登錄後出現如圖所示的界面。

 

 

 

本文參考鏈接:

https://www.cnblogs.com/shihaiming/p/11014257.html

 

發佈了287 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章