准备俩台以上的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