RabbitMQ 高可用:如何创建镜像队列?镜像队列原理+完整创建流程+实战配置
RabbitMQ 高可用如何创建镜像队列镜像队列原理完整创建流程实战配置前言一、镜像队列基础认知什么是镜像队列1.1 核心定义1.2 核心架构主从模型1.3 镜像队列核心作用二、镜像队列核心概念2.1 Master主节点2.2 Slave从节点2.3 HA 策略Policy三、创建镜像队列的 3 个步骤标准流程3.1 整体流程图3.2 详细步骤四、方式一命令行创建镜像队列最常用4.1 命令格式4.2 生产环境标准命令全队列同步到所有节点4.3 命令参数详解4.4 其他常用 ha-mode 模式五、方式二Web 管理界面创建镜像队列可视化5.1 步骤5.2 创建成功六、镜像队列关键配置参数详解6.1 ha-mode镜像模式必选6.2 ha-sync-mode同步模式6.3 ha-promote-on-shutdown6.4 ha-promote-on-failure七、查看镜像队列状态7.1 命令查看7.2 Web 界面查看八、取消镜像队列九、生产环境最佳实践十、常见问题问题1创建策略后队列没有变成镜像问题2主节点宕机后服务不可用问题3镜像队列性能低十一、总结镜像队列核心总结文末说明The Begin点点关注收藏不迷路前言在 RabbitMQ 生产集群环境中普通队列只存在于单个节点一旦该节点宕机队列和消息将全部丢失业务完全中断。为了解决单节点故障问题RabbitMQ 提供了镜像队列Mirrored Queue机制实现队列高可用。本文将从镜像队列原理、核心概念、创建方式、完整配置、生产最佳实践全方位讲解让你快速搭建 RabbitMQ 高可用队列。一、镜像队列基础认知什么是镜像队列1.1 核心定义镜像队列Mirrored Queue将队列同步复制到集群中的多个节点一个主节点Master 多个从节点Slave。主节点挂了从节点自动升级为主节点消息在所有节点备份单节点宕机不丢失、不中断实现 RabbitMQ 队列级高可用HA1.2 核心架构主从模型RabbitMQ集群同步数据同步数据Master节点 队列主Slave节点 队列从1Slave节点 队列从2生产者消费者1.3 镜像队列核心作用解决单节点故障实现高可用队列消息多节点备份不丢失主节点宕机自动故障转移生产环境集群必配二、镜像队列核心概念2.1 Master主节点队列的唯一主副本所有读写操作都走 MasterSlave 只做备份2.2 Slave从节点队列的镜像副本实时同步 Master 数据Master 宕机后自动竞选升主2.3 HA 策略Policy镜像队列不是手动创建的而是通过HA 策略Policy自动匹配队列实现镜像。三、创建镜像队列的 3 个步骤标准流程3.1 整体流程图搭建RabbitMQ集群创建HA策略策略自动匹配队列普通队列→镜像队列3.2 详细步骤搭建 RabbitMQ 集群普通集群创建 HA 镜像策略设置同步规则策略自动匹配队列队列变成镜像队列四、方式一命令行创建镜像队列最常用4.1 命令格式rabbitmqctl set_policy[-p 虚拟主机名]策略名称队列匹配规则HA策略配置4.2 生产环境标准命令全队列同步到所有节点rabbitmqctl set_policy-p/ ha-all^{ha-mode:all,ha-sync-mode:automatic}4.3 命令参数详解参数说明-p /指定虚拟主机默认 /ha-all策略名称自定义^匹配所有队列正则表达式ha-mode:all同步到集群所有节点ha-sync-mode:automatic自动同步消息4.4 其他常用 ha-mode 模式all同步到所有节点生产推荐exactly同步到指定数量节点{ha-mode:exactly,ha-params:2,ha-sync-mode:automatic}nodes同步到指定节点列表五、方式二Web 管理界面创建镜像队列可视化5.1 步骤登录 RabbitMQ 控制台http://ip:15672进入Admin→Policies→Add / update a policy填写配置项值Virtual host/Nameha-allPattern^Apply toQueuesDefinition点击添加1.ha-modeall2.ha-sync-modeautomatic点击Add policy完成创建5.2 创建成功所有队列自动变成镜像队列在队列页面可以看到 2 slaves字样。六、镜像队列关键配置参数详解6.1 ha-mode镜像模式必选all同步到集群所有节点推荐exactly同步到ha-params指定数量节点nodes同步到指定节点列表6.2 ha-sync-mode同步模式automatic新队列自动同步消息推荐manual手动同步6.3 ha-promote-on-shutdown主节点正常关闭时从节点是否升主。6.4 ha-promote-on-failure主节点异常宕机时从节点是否升主。七、查看镜像队列状态7.1 命令查看rabbitmqctl list_policies rabbitmqctl list_queues name slave_nodes state7.2 Web 界面查看Queues页面队列State显示running 从节点数量Nodes列显示主从节点八、取消镜像队列rabbitmqctl clear_policy-p/ ha-all删除策略后队列变回普通队列只保留在主节点。九、生产环境最佳实践ha-mode 推荐使用 all同步到所有节点可用性最高ha-sync-mode 必须 automatic自动同步镜像队列会消耗网络与磁盘IO不要无限同步队列镜像不负载均衡消费只走 Master配合持久化使用保证消息不丢失虚拟主机分开不同业务使用不同策略十、常见问题问题1创建策略后队列没有变成镜像检查正则是否匹配队列检查虚拟主机是否一致重启服务或重新声明队列问题2主节点宕机后服务不可用检查ha-promote-on-failure配置确保从节点正常同步问题3镜像队列性能低镜像越多性能越低生产建议 3 节点集群足够十一、总结镜像队列核心总结镜像队列 高可用队列主从备份单节点不宕机创建方式通过HA Policy 策略自动匹配核心命令rabbitmqctl set_policy推荐配置ha-modeallautomatic生产集群必须配置镜像队列否则存在单点故障风险镜像队列是 RabbitMQ生产环境高可用的基石文末说明本文属于 RabbitMQ 集群高可用系列后续将更新集群搭建、负载均衡、仲裁队列Quorum Queue、集群扩容等内容欢迎点赞、收藏、关注The End点点关注收藏不迷路
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2524324.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!