rabbitmq基础环境搭建及高可用集群环境搭建方法
环境准备
服务器2台(2核4G内存20G硬盘),如果部署单点,则1台服务器即可。
要求:
1.服务器可以连通互联网
2.服务器之间可以相互连通
3.本文以操作系统为Centos6.5为例,其余操作系统请自行对照
4.拥有root用户权限
单点搭建
1.用root用户登录服务器
2.切换到home文件夹下,一般个人习惯将软件应用安装在/home文件夹下,可以用于其他文件夹
#cd /home
2.下载erlang的rpm文件,rabbitMQ是基于erlang语言开发的
#wget http://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el6.x86_64.rpm
3.下载rabbitMQ的tar安装包
#wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.3/rabbitmq-server-generic-unix-3.6.3.tar.xz
4.安装erlang语言
#yum install erlang-18.3-1.el6.x86_64.rpm
注意中间的红色y为需输入的内容
5.解压rabbitMQ的安装包
tar -xvf rabbitmq-server-generic-unix-3.6.3.tar.xz
6.然后将解压后的rabbitmq_server-3.6.3/sbin目录添加到环境变量中。在 /etc/profile 文件的最后添加上
#vim /etc/profile
export RABBITMQ_HOME="/home/rabbitmq_server-3.6.3" export PATH="$RABBITMQ_HOME/sbin:$PATH"
7.配置端口放开
#vim /etc/sysconfig/iptables
#service iptables restart
8.两台服务器分别重启
#reboot
注意:单点部署至此就部署完毕(未包含启动服务),如果是集群部署,则需要同步两台服务器的/root/.erlang.cookie文件,所以如果是集群部署,则按集群部署操作。
集群搭建
1.首先在两台机器上按照《单点部署》章节分别部署
2.在两台机器中设置host,在文件最后增加
#vim /etc/hosts
192.168.8.67 rabbit1 192.168.8.69 rabbit2
分别是两台机器的IP和别名(下面分别以别名进行描述)
3.两台服务器分别重启
#reboot
4.登录rabbit1,生成rabbitMQ的配置文件rabbitmq.conf、rabbitmq-env.conf、enabled_plugins
#vim /home/rabbitmq_server-3.6.3/etc/rabbitmq/rabbitmq.conf
[ {rabbit, [ {tcp_listeners, [5672]}, {num_tcp_acceptors, 10}, {log_levels, [{connection, info}, {channel, info},{federation, info},{mirroring, info}]}, {loopback_users, [] }, {default_vhost, <<"/">>}, {default_user, <<"guest">>}, {default_pass, <<"guest">>}, {default_permissions, [<<".*">>, <<".*">>, <<".*">>]}, {default_user_tags, [administrator]}, %% {cluster_nodes, {['rabbit@my.host.com'], disc}}, {channel_max, 128} ] } ].
#vim /home/rabbitmq_server-3.6.3/etc/rabbitmq/enabled_plugins
[rabbitmq_management].
5.启动rabbit1的服务,此时将会在/root文件夹下自动生成.erlang.cookie,此文件是erlang集群部署时所需文件,需要在两台服务器中保持一致的
#rabbitmq-server –detached
5.将rabbit1中的/root/.erlang.cookie、/home/rabbitmq_server-3.6.3/etc/rabbitmq/enabled_plugins、/home/rabbitmq_server-3.6.3/etc/rabbitmq/rabbitmq.conf三个文件拷贝到rabbit2中
#scp /root/.erlang.cookie root@rabbit2:/root
#scp /home/rabbitmq_server-3.6.3/etc/rabbitmq/rabbitmq.conf root@rabbit2:/home/rabbitmq_server-3.6.3/etc/rabbitmq/
#scp /home/rabbitmq_server-3.6.3/etc/rabbitmq/enabled_plugins root@rabbit2:/home/rabbitmq_server-3.6.3/etc/rabbitmq/
6.登录rabbit2,启动rabbit2服务
#rabbitmq-server –detached
7.配置rabbit2中挂载的rabbit1的集群中
#rabbitmqctl stop_app
#rabbitmqctl reset
#rabbitmqctl join_cluster rabbit@rabbit1 –ram
#rabbitmqctl start_app
注意:(内存节点;disc:磁盘节点);其中rabbit@rabbit1,rabbit是Master节点上的NODENAME,rabbit1是Master的hostname(hostname在主机的/etc/hosts中配置192.168.8.67 rabbit1,在集群部署第二步有说明),Master节点作为disc节点;也可以修改节点类型:
#rabbitmqctl change_cluster_node_type disc | ram
8.查询集群环境状态
#rabbitmqctl cluster_status
9.在rabbit1(主节点)执行下面命令,配置集群高可用状态
# rabbitmqctl set_policy -p / ha-allqueue “.” ‘{“ha-mode”:”all”,”ha-sync-mode”:”automatic”}’
至此集群部署完毕。
测试服务可用性,访问服务http://192.168.8.67:15672/,用户名密码分别为guest/guest,在rabbit.config文件中配置