操作系统发行版:CentOS7
RabbitMQ版本:3.6.11
服务器主机规划:
10.168.17.102 mq07.mq-cluster.mall.lt.com
10.168.17.98 mq08.mq-cluster.mall.lt.com
10.168.17.64 mq09.mq-cluster.mall.lt.com
1,在三台服务器上分别编辑以下文件:
vim /etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit@mq07-mq-cluster
vim /etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit@mq08-mq-cluster
vim /etc/rabbitmq/rabbitmq-env.conf
NODENAME=rabbit@mq09-mq-cluster
这里最好配置一下NODENAME。
2,添加解析,修改配置文件/etc/hosts
10.168.17.102 mq07.mq-cluster.mall.lt.com mq07-mq-cluster
10.168.17.98 mq08.mq-cluster.mall.lt.com mq08-mq-cluster
10.168.17.64 mq09.mq-cluster.mall.lt.com mq09-mq-cluster
注意:hosts中配置的这几条后面的简称主机名必须跟上面的NODENAME变量中@后面的那个字符串一致
3,/usr/lib/systemd/system/rabbitmq-server.service
务必注意,centos7上的rabbitmq和es之类的service文件中必须指定下面标黄的两个参数,不然systemd不会去读取/etc/security/limits.conf配置,也就是不生效,rabbitmq的disk节点一旦打满会导致整个集群挂掉;今天就是遇到了这个线上的问题,可打开文件描述符耗尽,导致rabbitmq集群挂掉,而且重启后立即挂掉,因为业务比较繁忙,所以导致重启后的rabbitmq会立即耗尽1024。
说明:默认安装rabbitmq之后,直接启动,文件描述符为1024,proc也是1024,即使你修改了/etc/security/limits.conf以及limits.conf.d目录下的子文件为65536,依然如此,这一点务必注意;
[Unit]
Description=RabbitMQ broker
After=syslog.target network.target
[Service]
Type=notify
User=rabbitmq
Group=rabbitmq
LimitNOFILE=65536
LimitNPROC=65535
WorkingDirectory=/var/lib/rabbitmq
ExecStart=/usr/sbin