安装erlang
1、部署Erlang
1.1 RabbitMQ依赖于Erlang,版本对应请查看
https://www.rabbitmq.com/which-erlang.html
1.2 下载安装Erlang
yum install epel-release
yum list erlang
yum remove erl*
yum clean all
yum update
2、配置安装源
vim /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/6
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
3、安装
yum install erlang
1.3 测试Erlang
erl -v
halt().
2、安装RabbitMQ
2.1 下载 npm 安装包:
rabbitmq-server-3.8.0-1.el6.noarch.rpm
2.2 创建rabbitmq目录并上传npm安装包
cd /usr/local
mkdir rabbitmq
chmod 777 -R rabbitmq
2.3 上传安装包至rabbitmq文件夹内
2.4 进入rabbitmq文件夹 下载签名并安装
cd rabbitmq
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
yum install rabbitmq-server-3.8.0-1.el6.noarch.rpm
2.5 启动mq
chkconfig rabbitmq-server on
service rabbitmq-server start
2.6 配置MQ
rabbitmqctl list_users
rabbitmqctl list_user_permissions guest
rabbitmqctl delete_user guest
rabbitmqctl add_user username password
rabbitmqctl set_user_tags username administrator
rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
rabbitmqctl list_user_permissions username
2.7 添加web管理插件
rabbitmq-plugins enable rabbitmq_management
2.8 编辑远程连接权限
vim /etc/rabbitmq/rabbitmq.config
2.9 追加以下内容,lucky为允许远程连接的用户
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, [“lucky”]}]}
].
2.10 访问http://IP地址:15672 进行管理
3、集群配置
3.1 Erlang通过erlang.cookie进行集群配置,配置RabbitMQ集群模式时需要各节点erlang.cookie内容一致
vim /var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@10.104.132.37:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@10.104.132.209:/var/lib/rabbitmq/.erlang.cookie
chmod 777 /var/lib/rabbitmq/.erlang.cookie
vim /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
3.2 使用 -detached 参数运行各节点
rabbitmqctl stop
rabbitmq-server -detached
3.3 修改主机的hostname和hosts
vim /etc/sysconfig/network
vim /etc/hosts
hosts内容需要和hostname保持一致 :举例
10.104.131.164 ttt6-node35
10.104.131.166 ttt6-node116
3.4 重启时配置生效,大约需要两分钟
reboot
3.5 从服务器上执行下列语句加入集群
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@ttt6-node35
rabbitmqctl start_app
若出现 rabbitmqctl 指令执行不成功
检查Erlang cookie hash值是否一致,不一致重复3.1,注意空行
若一致,则可能是插件或者rabbitmq本身未启动
service rabbitmq-server start
rabbitmqctl start_app
3.6 查看集群搭建结果
rabbitmqctl cluster_status
3.7 配置镜像队列模式,即队列会被复制到各个节点,各个节点状态保持一致,高可用
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'