Linux安装RabbitMQ
准备一台Linux虚拟机,Linux7(CentOS 7);配置最好再2G内存以上.
1. 首先在Linux上进行一些软件的准备工作,yum下来一些基础的软件包
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel
2. 下载RabbitMQ所需软件包(这里使用的是 RabbitMQ3.6.5 稳定版本)
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
3. 安装服务命令
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
4. 修改用户登录与连接心跳检测,注意修改
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
修改点1:loopback_users 中的 <<“guest”>>,只保留guest (用于用户登录)
(备注:在命令环境下输入 /loopback 可以快速查找到相关位置)
修改点2:heartbeat 为10(用于心跳连接)
(备注:在命令环境下输入 /heartbeat 可以快速查找到相关位置)
5. 安装管理插件 ## 5.1 首先启动服务(后面 | 包含了停止、查看状态以及重启的命令)
/etc/init.d/rabbitmq-server start | stop | status | restart
5.2 查看服务有没有启动: lsof -i:5672 (5672是Rabbit的默认端口)
rabbitmq-plugins enable rabbitmq_management
5.3 可查看管理端口有没有启动:
lsof -i:15672 或者 netstat -tnlp | grep 15672
6. 一切OK 我们访问地址,输入用户名密码均为 guest :
http://你的ip地址:15672/
7. 如果一切顺利,那么到此为止,我们的环境已经安装完啦
Linux RabbitMQ 集群配置
1.准备2台以上可以互相访问的Linux 虚拟机
2.修改两台虚拟机的/etc/hostname 文件
分别改为:mq01(作为主机) 和 mq02(作为节点)
3.修改/etc/hosts 文件
10.28.16.4 mq01
和
10.28.16.5 mq02
4.在主机中生成.erlang.cookie文件
执行
vim /var/lib/rabbitmq/.erlang.cookie
将生成的.erlang.cookie文件复制到mq02(此时RabbitMQ 必须关闭)上,执行 :
scp /var/lib/rabbitmq/.erlang.cookie root@10.28.16.5:/var/lib/rabbitmq/.erlang.cookie
5.修改.erlang.cookie的权限
进入 /var/lib/rabbitmq目录 依次执行下面2个命令
chown rabbitmq:rabbitmq .erlang.cookie
chmod 400 .erlang.cookie
6.重启2台虚拟机
执行 reboot
7.打开mq01的4369端口
依次执行
firewall-cmd --zone=public --add-port=4369/tcp --permanent
systemctl restart firewalld.service
8.启动mq01的RabbitMQ
依次执行
rabbitmqctl stop
rabbitmq-server -detached
9.启动mq02的rabbitMQ添加到mq01上
在mq02上依次执行:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@mq01
rabbitmq-server -detached
10.查看集群运行情况
执行如下命令:
rabbitmqctl cluster_status
将出现如下界面: