RedHat/Centos下Rabbitmq安装及集群配置

来源:互联网 发布:mac os x 10.10懒人版 编辑:程序博客网 时间:2024/04/27 13:26

一、安装Erlang语言环境

http://blog.csdn.net/gao715108023/article/details/11518583

二、RedHat/CentOS下Rabbitmq的集群配置

在3台节点上部署Rabbitmq,IP地址分别为:10.15.107.168、10.15.144.223和10.15.144.73

1、修改这三台机器的hostname

(1) 首先,在这3台机器中的/etc/sysconfig/network文件下,分别将HOSTNAME属性值改为rabbitmq_node1,rabbitmq_node2,rabbitmq_node3。

最后,重启这3台机器,让其hostname的修改生效。

(2) 在10.15.107.168机器中,假设其hostname为rabbitmq_node1,在/etc/hosts文件中,添加以下内容:

127.0.0.1        rabbitmq_node1

10.15.144.223     rabbitmq_node2
 10.15.144.73     rabbitmq_node3

(2)在10.15.144.223机器中,假设其hostname为rabbitmq_node2,在/etc/hosts文件中,添加以下内容:

127.0.0.1         rabbitmq_node2

10.15.107.168     rabbitmq_node1
10.15.144.73     rabbitmq_node3

(3)在10.15.144.73机器中,假设其hostname为rabbitmq_node3,在/etc/hosts文件中,添加以下内容:

127.0.0.1         rabbitmq_node3

10.15.107.168     rabbitmq_node1
 10.15.144.223     rabbitmq_node2

2、RabbitMQ的安装

首先,在/opt目录下下载安装包

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.0.2/rabbitmq-server-3.0.2-1.noarch.rpm

其次,执行以下命令进行安装

rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

yum install rabbitmq-server-3.0.2-1.noarch.rpm

设置Rabbitmq为系统自启动

/sbin/chkconfig rabbitmq-server on

添加用于web管理平台的插件

[root@rabbitmq_node3 opt]# /usr/sbin/rabbitmq-plugins enable rabbitmq_management

最后启动RabbitMQ服务

[root@rabbitmq_node3 opt]# /sbin/service rabbitmq-server start


若发现无法启动或者重启,执行如下命令:

rm -rf /var/lib/rabbitmq/mnesia/

3、RabbitMQ的集群配置

(1) 将10.15.107.168节点中的这个文件/var/lib/rabbitmq/.erlang.cookie
的内容替换掉10.15.144.223和10.15.144.73的这个文件的内容。也就是说,10.15.107.168、10.15.144.223和10.15.144.73这三台节点上的这个文件/var/lib/rabbitmq/.erlang.cookie的内容要保持一致。

[root@rabbitmq_node1 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@10.15.144.73:/var/lib/rabbitmq/

(2) 在10.15.107.168机器中,首先,在/etc/init.d目录下,生成一个rabbitmq-cluster.sh的脚本文件,文件内容如下:

/usr/sbin/rabbitmqctl stop_app/usr/sbin/rabbitmqctl reset/usr/sbin/rabbitmqctl start_app
其次,赋予该脚本文件的执行权限:
chmod +x rabbitmq-cluster.sh
最后,执行该脚本文件:

./rabbitmq-cluster.sh

(3) 在10.15.144.223机器中,首先,在/etc/init.d目录下,生成一个rabbitmq-cluster.sh的脚本文件,文件内容如下:

/usr/sbin/rabbitmqctl stop_app/usr/sbin/rabbitmqctl reset/usr/sbin/rabbitmqctljoin_cluster rabbit@rabbitmq_node1/usr/sbin/rabbitmqctl start_app

其次,赋予该脚本文件的执行权限:

chmod +x rabbitmq-cluster.sh

最后,执行该脚本文件:
./rabbitmq-cluster.sh

(4) 在10.15.144.73机器中,首先,在/etc/init.d目录下,生成一个rabbitmq-cluster.sh的脚本文件,文件内容如下:

/usr/sbin/rabbitmqctl stop_app/usr/sbin/rabbitmqctl reset/usr/sbin/rabbitmqctljoin_cluster rabbit@rabbitmq_node1 --ram/usr/sbin/rabbitmqctl start_app

其次,赋予该脚本文件的执行权限:

chmod +x rabbitmq-cluster.sh

最后,执行该脚本文件:

./rabbitmq-cluster.sh
至此,Rabbitmq的集群配置已经完成。在这3台机器中,执行以下命令:
/usr/sbin/rabbitmqctl cluster_status

就可以看到集群配置的效果,分别如下所示:(切记:在任何情况下,集群中必须至少有一个节点是disk类型的,所以如果集群是3台机器的话,就需要有2台机器的节点是disk类型的)

4、Rabbitmq Server添加用户及其权限
为了将Rabbitmq的用户权限进行分离,我们得为使用rabbitmq的每个项目创建一个用户名username、密码password及其虚拟主机vhost。
(1) 添加用户名及密码,假设创建一个用户名为test,密码为test的用户,则输入如下命令:

/usr/sbin/rabbitmqctl add_user test test

(2) 将该用户设置为管理员权限,则输入如下命令:
/usr/sbin/rabbitmqctl set_user_tags test administrator
(3) 添加虚拟主机vhost
假设创建一个名为/test的虚拟主机vhost,则输入如下命令:
/usr/sbin/rabbitmqctl add_vhost /test
(4) 添加权限
为以上的用户名和虚拟主机设置读写等权限,输入如下命令:
/usr/sbin/rabbitmqctl set_permissions -p /test test ".*" ".*" ".*"





原创粉丝点击