linux搭建rabbitmq集群


准備倆台以上的Centos7的機器 為了方便管理 ip+hostname分別為

             192.168.128.140  A
             192.168.128.142  B
             192.168.128.143  C    

修改hosts文件如下   通過 vi /etc/hosts 命令進入,每台的配置都一樣 然后重新啟動所有機器 

 

1、安裝RabbitMQ

1)下載和安裝erlang

下載erlang

wget http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el6.x86_64.rpm

安裝erlang,root用戶使用rpm安裝

rpm -ihv erlang-18.1-1.el6.x86_64.rpm

2)下載和安裝RabbitMQ

下載RabbitMQ

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_12/rabbitmq-server-3.6.12-1.el6.noarch.rpm

安裝RabbitMQ,root用戶使用rpm安裝

yum install -y socat  --需要先安裝socat
rpm -ihv rabbitmq-server-3.6.12-1.el6.noarch.rpm

當安裝完成之后,可以啟動一下,如果打印如下,那么安裝就成功了。

復制代碼
[root@A ~]# rabbitmq-server 

              RabbitMQ 3.6.12. Copyright (C) 2007-2017 Pivotal Software, Inc.
  ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
  ##  ##
  ##########  Logs: /var/log/rabbitmq/rabbit@bigdata-arch-client11.log
  ######  ##        /var/log/rabbitmq/rabbit@bigdata-arch-client11-sasl.log
  ##########
              Starting broker...
 completed with 0 plugins.
復制代碼

2、配置RabbitMQ

1)創建RabbitMQ賬號

rabbitmqctl add_user admin bigdata123

[root@A ~]# rabbitmqctl add_user admin admin
Creating user "admin"

 2)將admin賬號賦予管理員權限

rabbitmqctl set_user_tags admin administrator

[root@A ~]#  rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator]

 3)設置權限

rabbitmqctl  set_permissions  -p  '/'  admin '.' '.' '.'

[root@A ~]#  rabbitmqctl  set_permissions  -p  '/'  admin '.' '.' '.'
Setting permissions for user "admin" in vhost "/"

3、配置RabbitMQ集群

我們這里會展示如何配置一個RabbitMQ集群,要保證三台服務器的IP能通。

 1)安裝好RabbitMQ

安裝方法同上文。

2)保證相同的Erlang Cookie

 我這里是把A上的.erlang.cookie以scp的方式拷貝到另外兩台機器。(如果mq沒有啟動過是沒有erlang.cookie的)

[root@A ~]# scp /var/lib/rabbitmq/.erlang.cookie root@B:/var/lib/rabbitmq
[root@A ~]# scp /var/lib/rabbitmq/.erlang.cookie root@C:/var/lib/rabbitmq

3)運行各個RabbitMQ節點

rabbitmqctl stop
rabbitmq-server -detached 

運行成功后可以查看一下節點當前的集群狀態,當然這個時候還沒有組成集群。

[root@A ~]# rabbitmqctl cluster_status
[root@B ~]# rabbitmqctl cluster_status
[root@C ~]# rabbitmqctl cluster_status

4)將節點連接成集群

B:加入到集群rabbit@A

[root@B ~]#rabbitmqctl stop_app 
[root@B ~]#rabbitmqctl join_cluster rabbit@A
[root@B ~]#rabbitmqctl start_app

C:加入到集群rabbit@A

[root@C ~]#rabbitmqctl stop_app 
[root@C ~]#rabbitmqctl join_cluster rabbit@A
[root@C ~]#rabbitmqctl start_app

A:不用加入自己

查看集群狀態,我們可以在任意一台機器上查看,我們選擇在client09上看。

復制代碼
[root@A ~]# rabbitmqctl cluster_status

Cluster status of node rabbit@A
[{nodes,[{disc,[rabbit@A,rabbit@B,rabbit@C]}]},
{running_nodes,[rabbit@C,rabbit@B,rabbit@A]},
{cluster_name,<<"rabbit@A">>},
{partitions,[]},
{alarms,[{rabbit@C,[]},{rabbit@B,[]},{rabbit@A,[]}]}]

復制代碼

可以看到,3個實例已經組成了集群。

 5)啟用web管理插件

rabbitmq-plugins enable rabbitmq_management

復制代碼
[root@A ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  amqp_client
  cowlib
  cowboy
  rabbitmq_web_dispatch
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@bigdata-arch-client11... started 6 plugins.
復制代碼

這樣你可以通過web頁面觀察rabbitmq的status,端口號是15672,例如http://ip:15672 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM