当前位置: 首页 > news >正文

Java 生产环境 RocketMQ 架构与部署指南

目录一、生产环境标准架构必用1. 整体架构图极简版2. 核心组件说明二、生产环境推荐部署规格最小高可用集群最常用中型集群业务量较大三、部署步骤生产可直接照做环境准备步骤 1下载解压步骤 2修改 JVM 内存非常重要步骤 3配置 NameServer 集群2 台步骤 4配置 Broker 主从集群核心机器规划1配置 broker1-master2配置 broker1-slave3broker2-master 和 broker2-slave四、Java 生产环境客户端配置生产者消费者五、生产环境关键配置必看六、集群检查命令七、高可用保障机制总结RocketMQ 是阿里开源的分布式消息队列生产环境必须用分布式高可用架构绝对不能单节点部署。本文会用最清晰、生产可直接落地的方式给你讲透架构和部署步骤。一、生产环境标准架构必用生产环境核心目标高可用、无单点故障、可水平扩容。1. 整体架构图极简版生产者集群 → NameServer 集群2~3台 → Broker 主从集群 → 消费者集群2. 核心组件说明NameServer注册中心轻量级无状态服务必须集群部署2~3 台作用Broker 注册、路由发现、心跳检测无主从、无选举随便挂一台不影响整体Broker消息存储核心真正负责消息收发、持久化、高可用生产必须主从架构Master-Slave支持异步刷盘 异步复制性能最高支持同步双写金融级可靠性生产者 / 消费者都是客户端集群无状态可随意扩容通过 NameServer 自动发现 Broker二、生产环境推荐部署规格最小高可用集群最常用NameServer2 台2C4GBroker2 主 2 从4 台4C8GSSDbroker1-master broker1-slavebroker2-master broker2-slave中型集群业务量较大NameServer3 台Broker3 主 3 从6 台磁盘必须用SSD机械盘会导致严重性能瓶颈。三、部署步骤生产可直接照做环境准备LinuxCentOS 7/Ubuntu 20JDK 8必须关闭防火墙 / 开放端口9876 (NameServer)、10911/10912 (Broker)磁盘SSD预留 50GB步骤 1下载解压# 下载稳定版 4.9.5 / 5.1.0生产推荐 4.9.x wget https://archive.apache.org/dist/rocketmq/4.9.5/rocketmq-all-4.9.5-bin-release.zip unzip rocketmq-all-4.9.5-bin-release.zip mv rocketmq-4.9.5 /usr/local/rocketmq cd /usr/local/rocketmq步骤 2修改 JVM 内存非常重要默认内存太大服务器会直接挂修改 NameServer 启动内存vim bin/runserver.sh找到JAVA_OPT${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g改为JAVA_OPT${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m修改 Broker 启动内存vim bin/runbroker.sh找到JAVA_OPT${JAVA_OPT} -server -Xms8g -Xmx8g改为JAVA_OPT${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g步骤 3配置 NameServer 集群2 台每台 NameServer 都执行nohup sh bin/mqnamesrv # 查看日志 tail -f ~/logs/rocketmqlogs/namesrv.log看到The Name Server boot success即启动成功。步骤 4配置 Broker 主从集群核心我们以2 主 2 从为例机器规划192.168.1.10broker1-master192.168.1.11broker1-slave192.168.1.12broker2-master192.168.1.13broker2-slaveNameServer192.168.1.20, 192.168.1.211配置 broker1-mastermkdir -p /data/rocketmq/store mkdir -p /data/rocketmq/logs vim conf/broker.conf写入propertiesbrokerClusterName DefaultCluster brokerName broker1 brokerId 0 # 0master deleteWhen 04 fileReservedTime 48 brokerRole ASYNC_MASTER # 异步主高性能 flushDiskType ASYNC_FLUSH # 异步刷盘 listenPort10911 namesrvAddr192.168.1.20:9876;192.168.1.21:9876 storePathRootDir/data/rocketmq/store storePathCommitLog/data/rocketmq/store/commitlog storePathConsumeQueue/data/rocketmq/store/consumequeue storePathIndex/data/rocketmq/store/index storeCheckpoint/data/rocketmq/store/checkpoint abortFile/data/rocketmq/store/abort启动nohup sh bin/mqbroker -c conf/broker.conf 2配置 broker1-slavepropertiesbrokerClusterName DefaultCluster brokerName broker1 brokerId 1 # 非0slave deleteWhen 04 fileReservedTime 48 brokerRole SLAVE # 从节点 flushDiskType ASYNC_FLUSH listenPort10911 namesrvAddr192.168.1.20:9876;192.168.1.21:9876 storePathRootDir/data/rocketmq/store ...3broker2-master 和 broker2-slavebrokerName broker2brokerId0/masterbrokerId1/slave其他完全一样四、Java 生产环境客户端配置生产者Bean public DefaultMQProducer producer() { DefaultMQProducer producer new DefaultMQProducer(ProducerGroup); // 填所有 NameServer producer.setNamesrvAddr(192.168.1.20:9876;192.168.1.21:9876); producer.setRetryTimesWhenSendFailed(2); producer.setSendMsgTimeout(3000); return producer; }消费者Bean public DefaultMQPushConsumer consumer() throws MQClientException { DefaultMQPushConsumer consumer new DefaultMQPushConsumer(ConsumerGroup); consumer.setNamesrvAddr(192.168.1.20:9876;192.168.1.21:9876); consumer.subscribe(TOPIC_TEST, *); consumer.setMessageListener(new MessageListenerConcurrently() { Override public ConsumeConcurrentlyStatus consumeMessage(...) { return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } }); return consumer; }五、生产环境关键配置必看brokerRole ASYNC_MASTER高性能flushDiskType ASYNC_FLUSH高性能金融级可用brokerRole SYNC_MASTERflushDiskType SYNC_FLUSH磁盘保留 48 小时开启自动删除过期文件六、集群检查命令# 查看集群状态 sh bin/mqadmin clusterList -n 192.168.1.20:9876 # 查看 Topic 路由 sh bin/mqadmin topicRoute -n 192.168.1.20:9876 -t TOPIC_TEST七、高可用保障机制NameServer 集群 → 无单点Broker 主从 → Master 挂了Slave 自动升主RocketMQ 4.x 需要手动切换5.x 自动切换生产者 / 消费者自动重试、自动发现消息持久化到磁盘总结生产架构NameServer 集群2~3 台 Broker 主从集群2 主 2 从起步部署核心修改 JVM 内存 配置 broker.conf 主从 用 SSD高可用无单点、主从自动切换、消息不丢失Java 客户端配置所有 NameServer 地址即可自动负载
http://www.gsyq.cn/news/1405858.html

相关文章:

  • 如何快速掌握未来荧黑字体:面向设计师与开发者的完整指南
  • 大疆无人机固件下载终极指南:如何用DankDroneDownloader重获固件控制权
  • RFID防碰撞协议优化:位窗技术如何实现节能与提速
  • Sparse4D 运行笔记
  • 雾计算架构下医疗物联网数据全链路隐私保护框架设计与实践
  • 【无标题】趣味评测公众号小程序双端管理系统
  • 3步搞定B站视频下载:从新手到高手的完整指南 [特殊字符]
  • 美国3A认证办理哪家好?2026美国3A认证办理推荐:美国3A认证办理公司推荐指南 - 栗子测评
  • 2026年全波段水质检测仪技术实力深度解析:从数据精准性、生产厂家、知名品牌与非标定制能力对比 - 品牌推荐大师1
  • 基于Groq与Streamlit构建本地语音AI助手:从原理到实践
  • 终极指南:Qwen3-VL-30B-A3B-Instruct的8大核心增强功能全解析
  • GEO优化:官网建设的重要性,如何铸就数字信任与增长引擎
  • 鸣潮游戏自动化策略:基于图像识别的智能辅助解决方案
  • 2026年安阳工业水处理设备选购指南:从电导率超标到锅炉结垢的完整解决方案 - 企业名录优选推荐
  • 聚焦PMC计划落地 广东高胜咨询凭口碑领跑制造咨询赛道 - 互联网科技品牌测评
  • 终极指南:如何用OK-WW实现鸣潮全自动后台挂机,告别重复操作
  • AI产品经理必看!大神亲授成长路径与实战技巧,助你轻松拿高薪!
  • SunnyUI.NET:重新定义C WinForm开发的革命性UI框架
  • NuExtract-1.5-tiny-GGUF实际应用案例:新闻摘要、合同解析、数据清洗
  • EDSR模型背后的数学原理:理解L1损失函数与残差连接的设计哲学
  • 基于PMU与广域阻尼控制的电力系统低频振荡抑制实战
  • 2026年苏州(太仓/常熟/张家港)抖音短视频拍摄推广公司实力榜单及优选指南 - 资讯速览
  • 2026阜阳黄金回收行业深度测评:别再被街边小店坑了,这三家最靠谱! - 润富黄金珠宝行
  • 产业园智慧消防为什么用海易纳一体化方案? - 资讯速览
  • 为什么选择bert-base-french-europeana-cased:处理18-20世纪法语文本的终极解决方案
  • 如何用QuickLyric免费获取歌词?这款Android应用让你轻松享受音乐
  • 从失效到提效,ChatGPT面试问题设计全解析,覆盖LLM幻觉识别、思维链验证与岗位匹配度建模
  • 极域电子教室破解技术深度解析:JiYuTrainer项目架构与实战指南
  • 【Agent智能体9 | 反思设计模式-提示词工程的进阶法则】
  • 【Agent智能体8 | 反思设计模式-大语言模型反思机制的四个演进阶段】