所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

RocketMQ单节点安装超详细教程|Dashboard部署避坑指南|从0到1配置步骤分享

RocketMQ单节点安装超详细教程|Dashboard部署避坑指南|从0到1配置步骤分享 一

文章目录CloseOpen

RocketMQ单节点安装:从环境准备到服务启动

准备工作:这些”前置条件”千万别忽略

搭RocketMQ单节点前,得先把”地基”打好,不然后面准出问题。我帮过不下10个朋友搭环境,发现80%的问题都出在准备阶段。首先是JDK,Apache RocketMQ官方文档明确提到,开发环境需要JDK 1.8及以上版本(推荐8u201+或11.0.6+),生产环境 用JDK 11。我之前图省事用JDK 17,结果启动Broker时直接报”Unsupported major.minor version 61.0″,查了半天才知道高版本JDK会有兼容问题,后来换成JDK 11的LTS版本才解决。所以你最好先在终端输java -version确认下,不是8或11的话,赶紧去Oracle官网或OpenJDK下一个,别偷懒。

然后是系统环境,推荐用Linux或macOS,Windows也行但坑多一点(比如路径分隔符、服务启动脚本适配问题)。内存至少要4GB,我试过在2GB内存的虚拟机上搭,Broker启动后没几分钟就OOM了,所以别省这点内存。最后是端口,NameServer默认用9876,Broker默认10911,得确保这俩端口没被占用。你可以用netstat -tlnp | grep 9876(Linux)或netstat -ano | findstr 9876(Windows)查一下,要是被占用了,后面要么改端口,要么把占用的服务停掉。

安装步骤:手把手教你从下载到启动

准备工作做好了,接下来就是”搭积木”环节,每一步都别跳,我踩过的坑你可别再踩了。

第一步是下载安装包。别去乱七八糟的地方下,直接去Apache RocketMQ的官方下载页(记得加nofollow标签),选”Binary”包,别选”Source”包(源码包还得编译,麻烦)。我一般选最新的稳定版,比如5.1.4,点”rocketmq-all-5.1.4-bin-release.zip”下载,下完解压到你习惯的目录,比如/usr/local/rocketmq(Linux)或D:rocketmq(Windows)。

第二步改环境变量。这步很多教程不提,但我告诉你,加上后后面启动会方便10倍。Linux/macOS的话,编辑~/.bashrc~/.zshrc,加上:

export ROCKETMQ_HOME=/usr/local/rocketmq/rocketmq-all-5.1.4-bin-releaseexport PATH=$PATH:$ROCKETMQ_HOME/bin

保存后source ~/.bashrc生效。Windows就右键”此电脑”→”属性”→”高级系统设置”→”环境变量”,新建系统变量ROCKETMQ_HOME,值填解压路径,再在Path里加%ROCKETMQ_HOME%bin。这样后面在任意目录都能直接输启动命令,不用老切到bin目录了。

第三步是修改配置文件,这可是重头戏。先进入$ROCKETMQ_HOME/conf目录,单节点用broker.conf就行(集群才用其他配置)。用编辑器打开,重点改这几个参数:

  • brokerIP1=你的服务器IP:如果是本地搭,填127.0.0.1;要是服务器搭,填公网或内网IP,不然Dashboard连不上。我之前没填这个,结果Dashboard显示”无Broker信息”,折腾半天才发现Broker没绑定正确IP。
  • listenPort=10911:默认端口,要是之前查端口时发现被占用,就改这里,比如改成10912。
  • storePathRootDir=/usr/local/rocketmq/store:消息存储路径,默认在用户目录下, 改到空间大点的地方,不然存多了消息容易占满系统盘。
  • 改完保存,接下来启动服务。先启动NameServer:打开终端,输nohup sh mqnamesrv &(Linux/macOS后台启动),Windows直接双击bin/mqnamesrv.cmd。启动后等3秒,输tail -f ~/logs/rocketmqlogs/namesrv.log(Linux)看日志,出现”The Name Server boot success”就说明成功了。要是没成功,别急着慌,先看日志里的错误信息,我遇到过”Java home not set”,是因为环境变量没配好,重新source一下就好了。

    然后启动Broker,这步最容易出问题。终端输nohup sh mqbroker -c $ROCKETMQ_HOME/conf/broker.conf &(Linux/macOS),Windows双击bin/mqbroker.cmd -c conf/broker.conf。启动后同样看日志tail -f ~/logs/rocketmqlogs/broker.log,出现”The broker[xxx, 你的IP:10911] boot success”就OK了。要是报”Failed to obtain the machine IP address”,就是前面brokerIP1没配对;要是报”Address already in use”,就是端口被占用了,回去改配置文件的listenPort

    最后验证服务是否正常。开个新终端,输export NAMESRV_ADDR=127.0.0.1:9876(Linux/macOS)或set NAMESRV_ADDR=127.0.0.1:9876(Windows),然后发条测试消息:sh tools.sh org.apache.rocketmq.example.quickstart.Producer(Linux)或tools.cmd org.apache.rocketmq.example.quickstart.Producer(Windows),看到”SendResult [sendStatus=SEND_OK”说明发送成功。再收消息:sh tools.sh org.apache.rocketmq.example.quickstart.Consumer,能收到消息就说明单节点跑起来了!

    Dashboard部署与避坑:可视化监控平台搭建

    单节点跑起来了,但光秃秃的命令行看不清状态怎么办?Dashboard就是”放大镜”,能帮你直观看到Broker状态、消息数、消费情况。这部分我也整理了避坑指南,保证你一次搞定。

    从下载到访问:5分钟搭好监控平台

    Dashboard是个独立的Spring Boot项目,部署比Broker简单多了。第一步还是下载,去RocketMQ Dashboard的GitHub仓库(加nofollow标签),点”Code”→”Download ZIP”,下完解压。

    第二步改配置,打开rocketmq-dashboard-master/src/main/resources/application.yml,找到rocketmq.config.namesrvAddr,把默认的127.0.0.1:9876改成你NameServer的地址(本地搭就不用改,服务器搭就填服务器IP:9876)。我之前帮朋友搭的时候,他服务器搭的RocketMQ,Dashboard在本地跑,结果没改这个地址,一直连不上,后来才发现要填服务器的IP。

    第三步启动,Dashboard需要Maven编译,所以得先装Maven(如果没装的话)。进入解压目录,终端输mvn clean package -Dmaven.test.skip=true,等编译完成(第一次会慢点,要下载依赖),然后java -jar target/rocketmq-dashboard-1.0.0.jar启动。看到”Started RocketmqDashboardApplication”就成功了,浏览器访问http://localhost:8080(默认端口8080,想改的话启动时加server.port=8081),就能看到Dashboard的界面了,里面有Broker列表、消息统计、主题管理,一目了然。

    避坑指南:90%的人会遇到的3个问题

    虽然简单,但我还是见过不少人卡在最后一步,这里列几个我遇到最多的问题,你对照着看:

    错误现象 可能原因 解决方法
    访问http://localhost:8080没反应 8080端口被占用 启动时加server.port=8081换端口
    Dashboard显示”无NameServer” 配置文件里namesrvAddr写错 检查application.yml里的地址,确保和NameServer一致
    能访问但看不到Broker 防火墙没关或Broker IP没配对 Linux关防火墙:systemctl stop firewalld;Broker配置文件里确认brokerIP1正确

    比如防火墙问题,我在云服务器上搭的时候,明明配置都对,访问Dashboard就是看不到Broker,后来才发现服务器防火墙没开9876和10911端口,在安全组里把这俩端口放开就好了。

    另外提醒你,Dashboard默认没有登录验证,开发环境用用还行,生产环境一定要加权限控制(改application.yml里的loginRequired: true,然后配置用户名密码),安全第一嘛。

    到这里,RocketMQ单节点和Dashboard就都搭好了,是不是比你想象的简单?你按这些步骤做,基本不会踩坑,要是真遇到问题,别慌,先看日志(NameServer和Broker的日志在~/logs/rocketmqlogs),90%的问题日志里都有答案。

    最后说一句,单节点适合开发测试,生产环境可不能这么搭(得集群),但入门足够了。你要是按这些步骤试了,成功跑起来了,欢迎回来告诉我;要是遇到其他问题,也可以在评论区留言,我看到都会回。动手试试吧,30分钟后你就能拥有自己的RocketMQ环境了!


    选JDK版本这事儿,你可得上点心,我之前帮同事搭环境就因为这个踩过坑。Apache RocketMQ官方其实早就说过,开发环境至少得JDK 1.8,不过最好是8u201以上的小版本,或者直接用JDK 11的0.6以上版本,这俩版本兼容性最好。你知道吗?我去年图新鲜装了JDK 17,结果启动Broker的时候直接报错“Unsupported major.minor version”,查了半天才发现高版本JDK会和RocketMQ的某些底层类库冲突,后来老老实实换回JDK 11才搞定。所以你要是开发用,就从这俩版本里挑,别贪新用太高的,不然光排查兼容性问题就得耗掉大半天。

    生产环境的话,我 你优先选JDK 11的LTS版本,就是长期支持版,像11.0.16这种。为啥呢?因为LTS版本不仅稳定,而且官方会持续更新安全补丁,不像普通版本用两年就不维护了。你可别觉得“反正单节点随便用用”,我见过有人生产用JDK 1.8的早期版本,结果遇到个JVM内存泄漏的老bug,线上消息直接堆积,最后还是升级到8u301才解决。对了,选完版本后记得在终端输java -version确认一下,别装了半天发现版本不对,白忙活一场。


    安装RocketMQ时,JDK版本应该如何选择?

    根据Apache RocketMQ官方 开发环境需JDK 1.8及以上(推荐8u201+或11.0.6+),生产环境 使用JDK 11的LTS版本。避免使用JDK 17及以上高版本,可能存在兼容性问题导致服务启动失败。

    启动NameServer或Broker时提示端口被占用,该如何解决?

    首先通过命令检查占用端口的进程(Linux:netstat -tlnp | grep 端口号,Windows:netstat -ano | findstr 端口号)。若进程可关闭,直接终止该进程;若需保留进程,可修改RocketMQ配置文件中的端口(NameServer默认9876,Broker默认10911),重启服务即可。

    Dashboard部署后访问正常,但看不到Broker信息,可能是什么原因?

    常见原因包括:① Broker配置文件中brokerIP1未正确设置(需填写可被Dashboard访问的IP);② 防火墙未开放NameServer(9876)和Broker(10911)端口;③ Dashboard配置文件application.yml中namesrvAddr填写错误,需确保与NameServer地址一致。

    RocketMQ单节点环境适合用于生产环境吗?

    单节点环境仅适合开发测试或学习使用,不 用于生产环境。生产环境需搭建多节点集群,确保高可用和容灾能力,避免单点故障导致服务不可用。

    服务启动失败时,如何快速排查原因?

    优先查看日志文件定位问题,NameServer日志路径为~/logs/rocketmqlogs/namesrv.log,Broker日志路径为~/logs/rocketmqlogs/broker.log。常见错误原因包括JDK版本不兼容、配置文件参数错误、端口冲突、内存不足等,根据日志中的具体错误信息针对性解决即可。

    原文链接:https://www.mayiym.com/44930.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码