文章目录一、本篇前言为什么要先学会装RocketMQ二、安装前置准备环境硬性要求必看不然启动必报错1. 基础环境依赖2. 核心端口牢记3. 版本选择建议三、第一阶段RocketMQ单机版安装开发测试专用步骤1下载安装包并解压步骤2修改JVM内存配置新手最大坑点1修改NameServer启动内存2修改Broker启动内存步骤3启动NameServer路由中心步骤4启动Broker消息核心服务步骤5单机版停止服务命令四、第二阶段RocketMQ生产集群安装MasterSlave主从高可用1. 集群规划2节点标准生产架构2. 所有节点统一基础操作3. 两台节点启动NameServer4. 配置Master主Broker配置文件5. 配置Slave从Broker配置文件6. 启动主从Broker集群1节点1启动Master Broker2节点2启动Slave Broker五、可视化控制台Dashboard安装必装运维排查神器1. 下载Dashboard并启动2. 访问使用六、常见启动报错与避坑总结一、本篇前言为什么要先学会装RocketMQ上一篇我们搞懂了RocketMQ核心概念和工作原理知道了NameServer、Broker、生产者、消费者各司其职。理论看懂了下一步必须动手实操。不管是平时学习练手、本地代码调试还是公司生产环境上线安装部署是RocketMQ入门必经的第一步。很多人后面学消息发送、消费、死信、集群调优学不懂根源就是集群环境没搭对、基础配置乱七八糟。本篇博客专门写给零基础同学只讲最通用的Linux环境部署分两大阶段1️⃣单机版本安装本地开发、学习测试用一台机器快速搭建几分钟搞定2️⃣生产集群安装Master-Slave主从架构高可用、高可靠生产环境标准标配额外附赠可视化控制台Dashboard安装、启停命令、开机自启、常见启动报错排查全程复制粘贴就能用零踩坑。二、安装前置准备环境硬性要求必看不然启动必报错1. 基础环境依赖操作系统CentOS 7 / CentOS 8 / Ubuntu 主流Linux发行版均可JDK版本必须JDK8及以上RocketMQ核心基于Java开发没有JDK直接无法启动服务器配置单机测试1核2G足够集群建议每台节点2核4G起步关闭防火墙/开放端口9876NameServer端口、10911/10909Broker通信端口必须通否则客户端连不上服务。2. 核心端口牢记NameServer 默认端口9876 路由注册中心核心端口Broker 默认通信端口10911 消息收发主端口Broker 高可用端口10909 主从同步、内部通信端口3. 版本选择建议新手直接选RocketMQ 5.x稳定版新特性多、性能更好、bug更少兼容性强本文全程以5.x版本实操演示。三、第一阶段RocketMQ单机版安装开发测试专用单机版核心架构1个NameServer 1个Broker节点所有组件都在一台服务器简单快速适合本地学习、代码调试、功能测试不用于生产环境。步骤1下载安装包并解压统一规划安装目录建议放在/usr/local/rocketmq命令直接复制执行# 创建安装目录mkdir-p/usr/local/rocketmqcd/usr/local/rocketmq# 下载RocketMQ5.x安装包官方稳定版wgethttps://archive.apache.org/dist/rocketmq/5.1.4/rocketmq-all-5.1.4-bin-release.zip# 解压安装包unziprocketmq-all-5.1.4-bin-release.zip# 进入解压目录cdrocketmq-all-5.1.4-bin-release步骤2修改JVM内存配置新手最大坑点RocketMQ默认JVM内存配置很大低配机器直接启动闪退、内存溢出必须先改小内存再启动1修改NameServer启动内存vimbin/runserver.sh找到JAVA_OPT内存配置修改为低配机器适配参数# 原配置默认内存很大替换为以下内容JAVA_OPT${JAVA_OPT}-server -Xms512m -Xmx512m -Xmn256m2修改Broker启动内存vimbin/runbroker.sh同样修改内存为适配低配服务器配置JAVA_OPT${JAVA_OPT}-server -Xms512m -Xmx512m -Xmn256m步骤3启动NameServer路由中心# 后台启动NameServernohupshbin/mqnamesrv# 查看启动日志确认是否启动成功tail-f~/logs/rocketmqlogs/namesrv.log看到这个日志就是启动成功The Name Server boot success. serializeTypeJSON, address 0.0.0.0:9876步骤4启动Broker消息核心服务# 后台启动Broker关联本地NameServer开启自动创建Topicnohupshbin/mqbroker-n127.0.0.1:9876autoCreateTopicEnabletrue# 查看Broker启动日志tail-f~/logs/rocketmqlogs/broker.log启动无报错、日志正常输出即为单机环境搭建完成。步骤5单机版停止服务命令# 停止Brokershbin/mqshutdown broker# 停止NameServershbin/mqshutdown namesrv四、第二阶段RocketMQ生产集群安装MasterSlave主从高可用单机版只能测试生产环境绝对不能用单机一旦节点宕机整个消息服务全部瘫痪。生产标准架构双NameServer高可用 双Broker主从架构一台主节点处理读写一台从节点实时同步数据、分担读压力故障自动容错无单点风险。1. 集群规划2节点标准生产架构节点1192.168.1.100NameServer1 Broker-A Master节点2192.168.1.101NameServer2 Broker-A Slave两个NameServer互相备份两个Broker主从数据实时同步一台挂了不影响整体业务。2. 所有节点统一基础操作两台服务器都按照上面单机安装步骤1、步骤2执行下载解压安装包、修改JVM内存配置保证两台节点环境完全一致。3. 两台节点启动NameServer两台机器分别执行启动命令互不影响构建路由高可用集群nohupshbin/mqnamesrvtail-f~/logs/rocketmqlogs/namesrv.log4. 配置Master主Broker配置文件进入节点1主节点rocketmq配置目录新建主节点专属配置文件broker-master.confvimconf/broker-master.conf写入以下核心集群配置直接复制修改IP为自己服务器真实IP即可# 集群名称主从必须一致brokerClusterNameRocketMQ-Product-Cluster# Broker名称主从必须一致brokerNamebroker-a# 0代表Master主节点1代表Slave从节点brokerId0# 当前节点外网/内网真实IP务必修改brokerIP1192.168.1.100# 允许自动创建Topic生产后期建议关闭手动管理autoCreateTopicEnabletrue# 刷盘模式异步刷盘性能高生产默认flushDiskTypeASYNC_FLUSH5. 配置Slave从Broker配置文件进入节点2从节点配置目录新建从节点配置文件broker-slave.confvimconf/broker-slave.conf写入配置注意brokerId改为1IP改为从节点IP# 集群名称和主节点完全一致brokerClusterNameRocketMQ-Product-Cluster# Broker名称和主节点完全一致brokerNamebroker-a# 1代表从节点brokerId1# 从节点真实IP务必修改brokerIP1192.168.1.101autoCreateTopicEnabletrueflushDiskTypeASYNC_FLUSH6. 启动主从Broker集群1节点1启动Master Brokernohupshbin/mqbroker-n192.168.1.100:9876;192.168.1.101:9876-cconf/broker-master.conf2节点2启动Slave Brokernohupshbin/mqbroker-n192.168.1.100:9876;192.168.1.101:9876-cconf/broker-slave.conf至此生产级高可用主从集群搭建完成支持故障容错、数据备份、高并发读写。五、可视化控制台Dashboard安装必装运维排查神器命令行操作不方便日常看集群状态、Topic管理、消息查询、死信查看、消费监控全靠可视化控制台RocketMQ Dashboard一键安装即可。1. 下载Dashboard并启动直接下载官方编译好的jar包一行命令启动# 下载dashboardwgethttps://github.com/apache/rocketmq-dashboard/releases/download/rocketmq-dashboard-1.0.0/rocketmq-dashboard-1.0.0.jar# 启动控制台指定NameServer集群地址java-jarrocketmq-dashboard-1.0.0.jar--rocketmq.namesrv.addr127.0.0.1:9876--server.port80802. 访问使用浏览器输入http://服务器IP:8080即可可视化管理集群所有资源新手运维必备。六、常见启动报错与避坑总结启动闪退、内存溢出没修改runserver.sh和runbroker.sh默认大内存改小即可客户端连不上Broker防火墙没关、端口未开放brokerIP1配置成内网IP错误主从不同步集群名称、brokerName主从不一致严格保持一模一样启动成功但发不了消息没开启autoCreateTopicEnable手动创建Topic即可。