1. 在三台服务器上安装RabbitMQ
erlang下载:https://dl.bintray.com/rabbitmq-erlang/rpm/erlang socat下载:http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm RabbitMQ下载:https://www.rabbitmq.com/install-rpm.html#downloads
安装:
rpm -ivh erlang-21.3.8.16-1.el7.x86_64.rpm rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm rpm -ivh rabbitmq-server-3.8.6-1.el7.noarch.rpm
其他命令:
- 启动后台管理插件
-rabbitmq-plugins enable rabbitmq_management - 启动RabbitMQ
systemctl start/status/restart/stop rabbitmq-server.service - 查看进程
- 测试
- 关闭防火墙:
systemctl stop firewalld - 创建账户:
rabbitmqctl add_user username password - 设置用户角色:
rabbitmqctl set_user_tags username administrator - 设置用户权限:
rabbitmqctl set_permissions -p "/" laosun ".*" ".*" ".*" - 查看当前用户和角色:
rabbitmqctl list_users - 查看当前用户和角色:
rabbitmqctl change_password username password
2. 修改 /etc/hosts 映射文件
3. 相互通信
- 相互通信,cookie必须保持一致,同步 rabbitmq的cookie 文件。
cd /var/lib cd rabbimq ls -all cat .erlang.cookie - 跨服务器拷贝:
scp /var/lib/rabbitmq/.erlang.cookie ip:/var/lib/rabbitmq
- A:
IFVMRMAXCEJHCKHIPHCP - B:
IFVMRMAXCEJHCKHIPHCP - C:
IFVMRMAXCEJHCKHIPHCP - 修改cookie文件,要重启服务器,
reboot .
4. 停止防火墙,启动rabbitmq服务
systemctl stop firewalld systemctl start rabbitmq-server
5. 加入集群节点
- 将B,C加入到A中,则分别在B,C端操作。
- 暂停节点:
rabbitmqctl stop_app - 将节点加入到A中:
rabbitmqctl join_cluster rabbit@A - 重启节点:
rabbitmqctl start_app - 查看节点状态:
rabbitmqctl cluster_status (可以不看)
6. 重新创建用户。
- 如果在单机状态时,创建了用户或进行了其他的操作,这些信息在搭建集群时,会被隐藏起来,失去作用。因此需要重新创建。
- 当恢复到单机状态时,原来创建的用户和其他信息会恢复。
7. 查看管理端
8. 镜像模式
rabbitmqctl set_policy xall "^" '{"ha-mode":"all"}' 语法:set_policy {name} {pattern} {definition}
- name:策略名,可自定义
- pattern:队列的匹配模式(正则表达式)
- definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
- ha-mode:(High Available,高可用)模式,指明镜像队列的模式。
- all:表示在集群中所有的节点上进行镜像
- exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
- nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定
- ha-params:ha-mode模式需要用到的参数。
- ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
|