RabbitMQ集群部署
一、系统编译环境
yum -y install gcc glibc-devel make ncurses-devel openssl-devel autoconf
yum -y install unixODBC unixODBC-devel
yum -y install tk
yum -y install mysql-connector-odbc
二、RabbitMQ所需的附属包安装
1. erlang安装
Erlang安装命令为:
下载otp_src_R16B.tar.gz
tar -zxf otp_src_R16B.tar.gz
cd otp_src_R16B
./configure --prefix=/usr/local/otp_src_R16B
make
make install
2. simplejson安装
Simplejson依赖于 Python 环境的提前安装,默认 Python 环境安装成功。
Simplejson安装命令为:
yum install Simplejson
yum install python-simplejson.x86_64
3. xmlto安装
xmlto安装命令为:
yum install xmlto.x86_64
三、RabbitMQ安装
RabbitMQ安装命令为:
下载rabbitmq-server-3.4.4.tar.gz
tar -xzvf rabbitmq-server-3.4.4.tar.gz
cd rabbitmq-server-3.4.4
export PATH=$PATH:/usr/local/otp_src_R16B/bin
make
make install TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin \
MAN_DIR=/usr/local/rabbitmq/man
处理完毕后,修改/etc/profile:
vim /etc/profile,在文件末尾添加:
PATH=/usr/local/otp_src_R14B/bin:$PATH
export PATH
命令使profile生效:
source /etc/profile
四、RabbitMQ安装信息
在3.x采用源代码编译安装,rabbitmq 安装目录放在/usr/local/rabbitmq 下,脚本放在 sbin/
目录下,man手册放在 man/目录下。
└──sbin
├──rabbitmqctl
├──rabbitmq-defaults
├──rabbitmq-env
├──rabbitmq-plugins
└──rabbitmq-server
默认日志文件路径:/var/log/rabbitmq
1. RabbitMQ启动关闭服务
启动rabbitmq服务命令为:rabbitmq-server start(用户关闭连接后,自动结束进程)
后台运行rabbitmq服务命令为:rabbitmq-server -detached
关闭服务命令为:rabbitmqctl stop
2. RabbitMQ管理控制台
启用管理控制台命令:
rabbitmq-plugins enable rabbitmq_management
RabbitMQ访问控制台地址为:http://localhost:15672/
rabbitmq默认游客账号密码为:guest/guest 处理
此处通过rabbitmq ctl提供的命令进行处理
rabbitmqctl add_user papi Paic1234
rabbitmqctl set_user_tags papi administrator
查看用户列表:
rabbitmqctl list_users
用户授权:
rabbitmqctl set_permissions -p /vhost1 papi '.*' '.*' '.*'
查看权限:
rabbitmqctl list_user_permissions papi
五、Rabbitmq集群配置
三台机器地址分别为:100.68.2.114、100.68.2.115、100.68.2.116
1.在三台机器上修改/etc/hosts 文件
添加以下内容:
100.68.2.115 ECAM40218.cloud.pub ECAM40218
100.68.2.116 ECAM40219.cloud.pub ECAM40219
100.68.2.114 ECAM40217.cloud.pub ECAM40217
2.设置 erlang cookie,mq 创建集群时要用到
文件位置:
/var/lib/rabbitmq/.erlang.cookie或 /root/.erlang.cookie
将某个节点上的该文件,复制到其他两个节点上。
注意复制后,该文件的权限需要修改为400:
chmod 400 root/.erlang.cookie
3.使用 -detached 参数运行各节点
rabbitmqctl stop
rabbitmq-server–detached
4.创建集群
以ECAM40218为主节点,在其他两个节点上执行以下命令:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@ECAM40218
rabbitmqctl start_app
查看集群创建是否成功,在任意节点上执行:
rabbitmqctl cluster_status
出现如下结果,代表集群创建成功了:
[root@ECAM40218 sbin]# ./rabbitmqctl cluster_status;
Cluster status of node rabbit@ECAM40218 ...
[{nodes,[{disc,[rabbit@ECAM40218,rabbit@ECAM40219,rabbit@ecam40217]}]},
{running_nodes,[rabbit@ecam40217,rabbit@ECAM40219,rabbit@ECAM40218]},
{cluster_name,<<"rabbit@ECAM40219.cloud.pub">>},
{partitions,[]}]
5.设置镜像队列策略
在任意一个节点上执行:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。