部署
单机部署
1、安装Erlarg
yum -y install erlang -y
2、安装RabbitMQ
yum install -y rabbitmq-server
3、修改配置文件
cp /usr/share/doc/rabbitmq-server-3.3.5/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
vim /etc/rabbitmq/rabbitmq.config
注释第53行
{loopback_users, []}
4、安装插件并启动服务
rabbitmq-plugins enable rabbitmq_management
5、重启RabbitMQ服务
systemctl restart rabbitmq-server
6、查看节点状态
rabbitmqctl cluster_status
7、访问测试
ip地址为rabbitMQ所在服务器的地址
端口号:15672
默认账号密码:guest/guest
集群部署
1、所有节点配置host解析
vim /etc/hosts
2、所有节点安装erLang和rabbitmq(参照单机部署的1、2、3步)
3、所有节点cookie内容一致
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/.erlang.cookie
源码包部署一般会存在.erlang.cookie文件;
rpm包部署一般是在/var/lib/rabbitmq/.erlang.cookie。
将 rabbitmq1 的该文件使用rsync或者是scp复制到 rabbitmq2、rabbitmq3,文件权限需要是400。
4、除了rabbitmq1 都重启服务
systemctl restart rabbitmq-server
5、除了rabbitmq1 都关闭服务
rabbitmqctl stop
6、除了rabbitmq1 都分离运行
rabbitmq-server -detached
7、所有主机都添加用户并设置密码
rabbitmqctl add_user admin admin
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
rabbitmqctl set_user_tags admin administrator
8、所有节点都加入 rabbitmq1 中组成集群
rabbitmqctl stop_app
仅停止应用,不关闭节点
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app
9、使用内存节点加入集群(了解)
rabbitmqctl join_cluster --ram rabbit@rabbitmq1
10、查看集群状态
rabbitmqctl cluster_status
然后在linux中设置镜像队列策略:语法介绍
rabbitmqctl set_policy -p vhost1 ha-all "^" '{"ha-mode":"all"}'
案例中的命令
rabbitmqctl set_policy -p jinlongyu ha-all "^" '{"ha-mode":"all"}'
注释
"coresystem"
vhost名称,此处应该填写“jinlongyu”
ha-all 策略名称
"^" queue的匹配模式为匹配所有的队列
{ }:
为镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
ha-mode 指明镜像队列的模式,有效值为 all/exactly/nodes
all 表示在集群中所有的节点上进行镜像,包含新增节点
exactly (可选)表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
nodes (可选)表示在指定的节点上进行镜像,节点名称通过ha-params指定
ha-sync-mode (可选)进行队列中消息的同步方式,有效值为automatic和manual
提示:此时镜像队列设置成功。队列会被复制到各个节点,各个节点状态保持一致(这里的虚拟主机vhost1 。是代码中需要用到的虚拟主机,虚拟主机的作用是做一个消息队列进行隔离,本质上可认为是一个rabbitmq-server,是否增加虚拟主机,增加几个,这是由开发中的业务决定,即有哪几类服务,哪些服务用哪一个虚拟主机,这是一个规划)。
8、访问测试
http://ip:15672
账号:admin
密码:admin
❤️ 转载文章请注明出处,谢谢!❤️