RabbitMQ安裝部署

一臺(tái)服務(wù)器部署兩個(gè)節(jié)點(diǎn):

關(guān)閉防火墻,關(guān)selinux。

1.做好本地域名解析


QQ圖片20190814142510.png

2.. 安裝依賴包
[root@lamp ~]# yum install -y epel gcc-c++ unixODBC unixODBC-devel openssl-devel ncurses-devel

3.下載安裝ErLang
mkdir -p /rgec/src
cd /rgec/src/
下載適用于CentOS6的版本Erlang。
wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el6.x86_64.rpm
執(zhí)行RPM安裝。
rpm -ivh erlang-19.0.4-1.el6.x86_64.rpm

4.下載rabbitmq,版本可以使用最新版本,此處我使用的是3.6.6。我下載的版本是己編譯后的unix通用二進(jìn)制包。
cd /rgec/src/
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-generic-unix-3.6.6.tar.xz
yum -y install xz
xz -d rabbitmq-server-generic-unix-3.6.6.tar.xz
tar xf rabbitmq-server-generic-unix-3.6.6.tar
mkdir -p /rgec/app
mv rabbitmq_server-3.6.6/ /rgec/app/
cd /rgec/app/
mv rabbitmq_server-3.6.6/ rabbitmq_server-3.6.6_1
cp -R rabbitmq_server-3.6.6_1/ rabbitmq_server-3.6.6_2
[root@master2 app]# ls (顯示如下)
rabbitmq_server-3.6.6_1 rabbitmq_server-3.6.6_2
做軟鏈接,方便使用。
[root@master2 app]# ln -s rabbitmq_server-3.6.6_1 rabbitmq-node1
[root@master2 app]# ln -s rabbitmq_server-3.6.6_2 rabbitmq-node2

5.修改rabbitmq配置
開始修改rabbitmq配置,重點(diǎn)!?。。〈颂帟?huì)影響到rabbitmq的erlang.cookie及相關(guān)節(jié)點(diǎn)名稱。
先配置rabbitmq_server-3.6.6_1,第一個(gè)實(shí)例。
[root@master2 app]# cd rabbitmq-node1/etc/rabbitmq/

  1. [root@master2 rabbitmq]# vim enabled_plugins
    添加: [rabbitmq_management].

  2. [root@master2 rabbitmq]# vim rabbitmq.config
    添加如下:
    [
    {rabbit, [{tcp_listeners, [5673]},
    {vm_memory_high_watermark,{absolute,1073741824}},
    {mem_relative, 1.0}
    ]},
    {rabbitmq_management, [{listener, [{port,15673},{ip,"0.0.0.0"},{ssl,false}]}]}
    ].
    這是1G的內(nèi)儲(chǔ)存配置 (1073741824)
    5673是ipv6監(jiān)聽端,一臺(tái)服務(wù)器,兩個(gè)節(jié)點(diǎn),另一個(gè)節(jié)點(diǎn)要改成5674
    15673是web管理端,另一個(gè)節(jié)點(diǎn)要改成15674
    vi rabbitmq-env.conf
    NODE_PORT=5673
    (服務(wù)監(jiān)聽端)會(huì)自動(dòng)加上一個(gè)20000,即最后監(jiān)聽的是25673

  3. [root@master2 rabbitmq]# vim rabbitmq-env.conf
    添加如下:

實(shí)例服務(wù)端口

NODE_PORT=5673

實(shí)例節(jié)點(diǎn)名

NODENAME=rabbitmq-node1

日志目錄

LOG_BASE=/rgec/log/rabbitmq-node1

mnesia目錄

MNESIA_BASE=/rgec/app/rabbitmq-node1/mnesia

HOME,此目錄影響到.erlang.cookie文件的保存位置,每個(gè)實(shí)例使用自己的目錄來保存自己的cookie文件。

HOME=/rgec/app/rabbitmq-node1

  1. 創(chuàng)建.erlang.cookie文件(在rabbitmq-node2上也要?jiǎng)?chuàng)建)
    echo YRZYKOSGSIXZNFOUVUVN > /rgec/app/rabbitmq-node1/.erlang.cookie
    chmod 600 /rgec/app/rabbitmq-node1/.erlang.cookie

隨意字符串,需要做集群的節(jié)點(diǎn)使用相同的cookie。

保存退出。

同理配置其它實(shí)例。
端口使用不一樣的。

  1. 最后的配置情況如下:
    rabbitmq-node1:
    cd /rgec/app/
    cat rabbitmq-node1/etc/rabbitmq/rabbitmq.config
    [
    {rabbit, [{tcp_listeners, [5673]},
    {vm_memory_high_watermark,{absolute,1073741824}},
    {mem_relative, 1.0}
    ]},
    {rabbitmq_management, [{listener, [{port,15673},{ip,"0.0.0.0"},{ssl,false}]}]}
    ].

cat rabbitmq-node1/etc/rabbitmq/rabbitmq-env.conf
NODE_PORT=5673
NODENAME=rabbitmq-node1
LOG_BASE=/rgec/log/rabbitmq-node1
MNESIA_BASE=/rgec/app/rabbitmq-node1/mnesia
HOME=/rgec/app/rabbitmq-node1

cat rabbitmq-node1/etc/rabbitmq/enabled_plugins
[rabbitmq_management].

rabbitmq-node2:

cat rabbitmq-node2/etc/rabbitmq/rabbitmq.config
[
{rabbit, [{tcp_listeners, [5674]},
{vm_memory_high_watermark,{absolute,1073741824}},
{mem_relative, 1.0}
]},
{rabbitmq_management, [{listener, [{port,15674},{ip,"0.0.0.0"},{ssl,false}]}]}
].

cat rabbitmq-node2/etc/rabbitmq/rabbitmq-env.conf
NODE_PORT=5674
NODENAME=rabbitmq-node2
LOG_BASE=/rgec/log/rabbitmq-node2
MNESIA_BASE=/rgec/app/rabbitmq-node2/mnesia
HOME=/rgec/app/rabbitmq-node2

cat rabbitmq-node2/etc/rabbitmq/enabled_plugins
[rabbitmq_management].

6.確認(rèn)服務(wù)器上的實(shí)例配置沒有問題之后,啟動(dòng)每個(gè)實(shí)例。
[root@master2 app]# /rgec/app/rabbitmq-node1/sbin/rabbitmq-server -detached
Warning: PID file not written; -detached was passed.
[root@master2 app]# /rgec/app/rabbitmq-node2/sbin/rabbitmq-server -detached
Warning: PID file not written; -detached was passed.

7.查看端口是否啟來:
lsof -i:15673 或者 25673
lsof -i:15674 或者 25674

8.創(chuàng)建用戶,前分配權(quán)限和組:

以實(shí)例1為例:

cd /rgec/app

/rgec/app/rabbitmq-node1/sbin/rabbitmqctl add_user admin admin

Creating user "admin" ...

/rgec/app/rabbitmq-node1/sbin/rabbitmqctl set_permissions -p "/" admin "." "." ".*"

Setting permissions for user "admin" in vhost "/" ...

/rgec/app/rabbitmq-node1/sbin/rabbitmqctl set_user_tags admin administrator

Setting tags for user "admin" to [administrator] ...

使用瀏覽器訪問服務(wù)器的實(shí)例1端口:

QQ圖片20190814181319.png

同理處理其它實(shí)例節(jié)點(diǎn)的賬號(hào)。

9.配置集群:
以實(shí)例1和實(shí)例2組集群為例:
目前實(shí)例1是啟動(dòng),將實(shí)例2加入到實(shí)例1,保證實(shí)例1.erlang.cookie中的內(nèi)容在實(shí)例2的erlang.cookie中存在。
保證實(shí)例3為啟動(dòng)狀態(tài)。
cd /rgec/app

[root@master2 app]# ./rabbitmq-node2/sbin/rabbitmqctl stop_app
Stopping node 'rabbitmq-node2@master2' ...
停止實(shí)例應(yīng)用。

[root@master2 app]# ./rabbitmq-node2/sbin/rabbitmqctl reset
Resetting node 'rabbitmq-node2@master2' ...
重置rabbitmq實(shí)例數(shù)據(jù)。

[root@master2 app]# ./rabbitmq-node2/sbin/rabbitmqctl join_cluster --ram rabbitmq-node1@master2
Clustering node 'rabbitmq-node2@master2' with 'rabbitmq-node1@master2' ...
將實(shí)例2加入到實(shí)例1

[root@master2 app]# ./rabbitmq-node2/sbin/rabbitmqctl start_app
Starting node 'rabbitmq-node2@master2' ...

啟動(dòng)實(shí)例

[root@master2 app]# ./rabbitmq-node2/sbin/rabbitmqctl cluster_status
Cluster status of node 'rabbitmq-node2@master2' ...
[{nodes,[{disc,['rabbitmq-node1@master2']},{ram,['rabbitmq-node2@master2']}]},
{running_nodes,['rabbitmq-node1@master2','rabbitmq-node2@master2']},
{cluster_name,<<"rabbitmq-node1@master2">>},
{partitions,[]},
{alarms,[{'rabbitmq-node1@master2',[]},{'rabbitmq-node2@master2',[]}]}]
在瀏覽器上可以看到服務(wù)器上的2個(gè)實(shí)例組成了集群。

QQ圖片20190815112100.png

10.六、鏡像隊(duì)列
鏡像隊(duì)列是基于普通的集群模式

1.點(diǎn)擊admin菜單–>右側(cè)的Policies選項(xiàng)–>左側(cè)最下下邊的Add / update a policy
2.按照?qǐng)D中的內(nèi)容根據(jù)自己的需求填寫
3.點(diǎn)擊Add policy添加策略的,所以你還是得先配置普通集群,然后才能設(shè)置鏡像隊(duì)列.


QQ圖片20190815102554.png

4.下面我們來添加一個(gè)queues隊(duì)列來看看效果,這里只是測(cè)試結(jié)果,其它的先不填寫


QQ圖片20190815103314.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rabbitmq有3種模式,集群模式2種? 單機(jī)模式:即單機(jī)情況不做集群,就單獨(dú)運(yùn)行一個(gè)rabbitmq而已。...
    嗷大彬彬閱讀 4,220評(píng)論 1 9
  • 1、安裝erlang環(huán)境 2、安裝RabbitMQ需要的rpm 3、安裝RabbitMQ 4、添加管理插件 5、配...
    yellow_han閱讀 1,695評(píng)論 0 0
  • 服務(wù)器介紹 node1:192.168.174.10node2:192.168.174.11node3:192.1...
    habit_learning閱讀 19,910評(píng)論 2 12
  • rabbitmq cluster 搭建 vim /etc/hosts 192.168.1.1 node1 192....
    AsiaYo閱讀 1,461評(píng)論 0 1
  • 2017年7月25日星期二晴 今天天氣雖然有點(diǎn)熱,但是涼爽了不少。 下班回家,女兒看到我,就纏著我說:爸爸你陪著我...
    899037e3b5bb閱讀 157評(píng)論 0 0

友情鏈接更多精彩內(nèi)容