RabbitMq单机部署集群
一、RabbitMq下载安装
环境及版本
- linux版本:CentOS Linux release 8.2.2004 (Core)
- rabbitmq版本:3.11.16
- erlang版本:25.3.2-1
查看rabbitmq对应的erlang版本,官方地址:
资源地址
- rabbitmq下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.11.16
- erlang下载地址:https://github.com/rabbitmq/erlang-rpm/releases
下载完成之后的文件如下,这里el8对应系统版本
使用 rpm -ivh 命令分别安装erlang环境和rabbitmq
rpm -ivh erlang-25.3.2-1.el8.x86_64.rpm
rpm -ivh rabbitmq-server-3.11.16-1.el8.noarch.rpm
备注:通常RPM 包采用系统默认的安装路径。安装文件会按照类别分别安装到不同的目录,如下所示:
RPM 包默认安装路径 | 含 义 |
/etc/ | 配置文件安装目录,如/etc/my.cfg |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件(man page文件)保存位置 |
添加web管理界面插件
rabbitmq-plugins enable rabbitmq_management
启动、查看、关闭rabbitmq服务
/sbin/service rabbitmq-server status --查看rabbitmq状态 /sbin/service rabbitmq-server start --启动rabbitmq /sbin/service rabbitmq-server stop --停止rabbitmq
添加登录用户,内置的用户guest/guest只能在本机登录,要访问Linux下的服务,需要额外添加用户
rabbitmqctl add_user admin lin789. --添加用户 rabbitmqctl set_user_tags admin administrator --添加用户角色 rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" --添加角色权限
rabbitmqctl list_users --查看用户列表
登录管理界面添加虚拟主
二、集群
一些说明:集群分为普通集群和镜像集群,RabbitMQ官方推荐使用镜像集群。
- 普通集群:只会对元数据进行共享,比如交换机类型,队列类型等等,而不会对消息进行共享,当服务对消息进行消费时访问的节点没用所需消息时,RabbitMQ会从其他节点拉取所需需消息,如果存储消息的节点刚好宕机,则消息丢失,必须重启该节点才能进行消费,这样无法保证高可用
- 镜像集群:是普通集群的增强版本,它会在空闲时将消息以及元数据进行同步,单个节点失效并无太大影响,但是这种模式需要消耗带宽同步数据,系统性能会下降
创建rabbit2节点并且后端启动
RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached
指定rabbit2节点查看节点状态
rabbitmqctl status -n rabbit2
给rabbit2节点添加用户及权限
rabbitmqctl add_user admin lin789. -n rabbit2 rabbitmqctl set_user_tags admin administrator -n rabbit2 rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" -n rabbit2
添加集群
rabbitmqctl -n rabbit2 stop_app --停止节点所在的应用程序 rabbitmqctl -n rabbit2 reset --重新设置节点的元数据和状态为清空状态 rabbitmqctl -n rabbit2 join_cluster rabbit --加入第一节点 rabbitmqctl -n rabbit2 start_app --重新启动节点应用程序
----以上普通集群搭建完毕
设置镜像队列策略
rabbitmqctl set_policy [-p ] [–priority <priorityz] [–apply-to <apply-to2]
- -p Vhost: 可选参数,针对指定vhost下的queue进行设置
- Name:策略名称
- Pattern:匹配那些queue需要镜像复Definition制(使用正则表达式)、
- Definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
ha-mode:指明镜像队列的模式,有效值为all/exactly/nodes
all:表示在集群中所有的节点上进行镜像
exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定
ha-params: ha-mode模式需要用到的参数
ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
- priority:可选参数, policy的优先级
rabbitmqctl -p ylhost set_policy ha-all '^' '{"ha-mode":"all","ha-sync-mode":"automatic"}'
查看rabbit2节点集群状态
rabbitmqctl -n rabbit2 cluster_status
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具