安装包及依赖下载
Rabbitmq安装主要依赖两个rpm包, erlang和socat
1.下载erlang https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-22.3.4.12-1.el7.x86_64.rpm页面选择对应版本的erlang的rpm安装包(centos7需要19.3以上版本。
2.下载socat, 在http://www.rpmfind.net/linux/rpm2html/search.php?query=socat(x86-64)页面下载centos7版本的socat的rpm安装包。
3.下载Rabbitmq, 在http://www.rabbitmq.com/install-rpm.html页面下载centos7版本的安装包
- github下载地址: https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-3.7.8-1.el7.noarch.rpm)
rpm安装
1.将下载到的rpm文件copy入centos7,放置到自定义文件夹中。
2.使用rpm命令安装,也可以使用yum install *.rpm安装。
sudo rpm -ivh erlang-22.3.4.12-1.el7.x86_64.rpm
sudo rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm
sudo rpm -ivh rabbitmq-server-3.7.8-1.el7.noarch.rpm
配置
使用rpm安装, 配置文件在 /etc/rabbitmq下; 默认存储位置在 /var/lib/rabbitmq下; 命令在 /usr/lib/rabbitmq/lib/rabbitmq_server-xxx/sbin下
1.更改服务及管理后台端口
vi /etc/rabbitmq/rabbitmq.config
[
{mnesia, [{dump_log_write_threshold, 1000}]},
{rabbit, [{tcp_listeners, [5684]}]},
{log_levels, [{connection, info}]},
{rabbitmq_management,
[{listener, [{port, 18088},
{ip, "192.168.1.16"}
]}
]}
].
2.更改数据及日志存储位置
(1)创建目录
mkdir -p /data/rabbitmq/mnesia
mkdir -p /data/rabbitmq/log
chmod -R 777 /data/rabbitmq
(2)修改配置文件
vi /etc/rabbitmq/rabbitmq-env.conf
增加如下两行内容
RABBITMQ_MNESIA_BASE=/usr/local/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/usr/local/rabbitmq/log
保存,重启rabbitmq服务
启动rabbitmq
1.执行sudo service rabbitmq-server start
2.配置rabbitmq管理账户。
执行命令 rabbitmqctl add_user admin admin,设置账户密码为admin admin
3.执行命令 rabbitmqctl set_user_tags admin administrator,设置admin为管理员权限
4.执行命令 rabbitmq-plugins enable rabbitmq_management,打开rabbitmq web管理。
构建集群
1.按照前面的方式 在多台主机上安装好RabbitMQ实例
2.集群配置
(1).更改主机/etc/hosts,加入主机节点。 如下所示两台主机均在/etc/hosts中添加,然后两台主机相互之间可以ping通rabbit-node
vim /etc/hosts
添加内容:
192.168.1.16 rabbitmq-0001
192.168.1.17 rabbitmq-0002
(2). 由于RabbitMQ集群的主机需要使用同一个erlang.cookie。所以需要将多台主机的erlang.cookie设置为同一个。
erlang.cookie位置: 如果是使用rpm包安装的rabbitmq, erlang.cookie的位置在/var/lib/rabbitmq/.erlang.cookie;如果是源码编译安装,erlang.cookie文件位置在~/.erlang.cookie
(3)配置集群
在两台主机上停止当前Rabbitmq-server, 分别执行service rabbitmq-server stop,如有问题,可以使用ps查看rabbitmq进程号,在kill -9 杀掉。
然后执行service rabbitmq-server start 开启服务.
分别在两台台主机上执行rabbitmqctl cluster_status查看集群状况,此时只有本机的记录。
将 rabbitmq-0001, rabbitmq-0002组成集群。
在 rabbitmq-0002上执行:
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq-0001
rabbitmqctl start_app