RocketMQ系列第二篇:RocketMQ单机集群保姆级安装部署教程
文章目录
- 一、本篇前言:为什么要先学会装RocketMQ?
- 二、安装前置准备:环境硬性要求(必看,不然启动必报错)
- 1. 基础环境依赖
- 2. 核心端口牢记
- 3. 版本选择建议
- 三、第一阶段:RocketMQ单机版安装(开发测试专用)
- 步骤1:下载安装包并解压
- 步骤2:修改JVM内存配置(新手最大坑点)
- 1)修改NameServer启动内存
- 2)修改Broker启动内存
- 步骤3:启动NameServer路由中心
- 步骤4:启动Broker消息核心服务
- 步骤5:单机版停止服务命令
- 四、第二阶段:RocketMQ生产集群安装(Master+Slave主从高可用)
- 1. 集群规划(2节点标准生产架构)
- 2. 所有节点统一基础操作
- 3. 两台节点启动NameServer
- 4. 配置Master主Broker配置文件
- 5. 配置Slave从Broker配置文件
- 6. 启动主从Broker集群
- 1)节点1启动Master Broker
- 2)节点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起步;
- 关闭防火墙/开放端口:9876(NameServer端口)、10911/10909(Broker通信端口)必须通,否则客户端连不上服务。
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 -Xmn256m"2)修改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. serializeType=JSON, address 0.0.0.0:9876
步骤4:启动Broker消息核心服务
# 后台启动Broker,关联本地NameServer,开启自动创建Topicnohupshbin/mqbroker-n127.0.0.1:9876autoCreateTopicEnable=true&# 查看Broker启动日志tail-f~/logs/rocketmqlogs/broker.log启动无报错、日志正常输出即为单机环境搭建完成。
步骤5:单机版停止服务命令
# 停止Brokershbin/mqshutdown broker# 停止NameServershbin/mqshutdown namesrv四、第二阶段:RocketMQ生产集群安装(Master+Slave主从高可用)
单机版只能测试,生产环境绝对不能用单机,一旦节点宕机,整个消息服务全部瘫痪。生产标准架构:双NameServer高可用 + 双Broker主从架构,一台主节点处理读写,一台从节点实时同步数据、分担读压力,故障自动容错,无单点风险。
1. 集群规划(2节点标准生产架构)
- 节点1(192.168.1.100):NameServer1 + Broker-A Master
- 节点2(192.168.1.101):NameServer2 + Broker-A Slave
两个NameServer互相备份,两个Broker主从数据实时同步,一台挂了不影响整体业务。
2. 所有节点统一基础操作
两台服务器都按照上面单机安装步骤1、步骤2执行:下载解压安装包、修改JVM内存配置,保证两台节点环境完全一致。
3. 两台节点启动NameServer
两台机器分别执行启动命令,互不影响,构建路由高可用集群:
nohupshbin/mqnamesrv&tail-f~/logs/rocketmqlogs/namesrv.log4. 配置Master主Broker配置文件
进入节点1(主节点)rocketmq配置目录,新建主节点专属配置文件broker-master.conf:
vimconf/broker-master.conf写入以下核心集群配置(直接复制,修改IP为自己服务器真实IP即可):
# 集群名称,主从必须一致brokerClusterName=RocketMQ-Product-Cluster# Broker名称,主从必须一致brokerName=broker-a# 0代表Master主节点,1代表Slave从节点brokerId=0# 当前节点外网/内网真实IP(务必修改)brokerIP1=192.168.1.100# 允许自动创建Topic(生产后期建议关闭,手动管理)autoCreateTopicEnable=true# 刷盘模式:异步刷盘(性能高,生产默认)flushDiskType=ASYNC_FLUSH5. 配置Slave从Broker配置文件
进入节点2(从节点)配置目录,新建从节点配置文件broker-slave.conf:
vimconf/broker-slave.conf写入配置,注意brokerId改为1,IP改为从节点IP:
# 集群名称和主节点完全一致brokerClusterName=RocketMQ-Product-Cluster# Broker名称和主节点完全一致brokerName=broker-a# 1代表从节点brokerId=1# 从节点真实IP(务必修改)brokerIP1=192.168.1.101autoCreateTopicEnable=trueflushDiskType=ASYNC_FLUSH6. 启动主从Broker集群
1)节点1启动Master Broker
nohupshbin/mqbroker-n192.168.1.100:9876;192.168.1.101:9876-cconf/broker-master.conf2)节点2启动Slave Broker
nohupshbin/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.addr=127.0.0.1:9876--server.port=80802. 访问使用
浏览器输入:http://服务器IP:8080,即可可视化管理集群所有资源,新手运维必备。
六、常见启动报错与避坑总结
- 启动闪退、内存溢出:没修改runserver.sh和runbroker.sh默认大内存,改小即可;
- 客户端连不上Broker:防火墙没关、端口未开放,brokerIP1配置成内网IP错误;
- 主从不同步:集群名称、brokerName主从不一致,严格保持一模一样;
- 启动成功但发不了消息:没开启autoCreateTopicEnable,手动创建Topic即可。
