RocketMQ学习笔记:基础知识和安装启动
创始人
2025-05-29 12:00:13

这是本人学习的总结,主要学习资料如下

  • 马士兵教育

目录

  • 1、架构
  • 2、基本概念
  • 3、安装和启动
    • 3.1、命令行启动
      • 3.1.1、启动Server
      • 3.1.2、启动Broker
        • 3.1.2.1、修改初始内存
      • 3.1.3、总结
    • 3.2、启动管理系统


1、架构

主要有四个角色,NameServerBroker ClusterConsumerProducer

````ConsumerProducer```很容易理解,就是消费者和生产者。

NameServer是提供注册的服务,其他的节点想要加入到一个MQ的架构中都需要在NameServer中注册,同时也需要通过NameServer获取服务。

Broker Cluster则是提供消息的传输和存储。
请添加图片描述


2、基本概念

  • 主题(Topic):表示一类消息,通常是业务上的某一类操作。开发时可以自定义主题的名字,最好足够贴切,比如物流消息,订单消息,能直接了当地知道消息的大概内容。
  • 标签(Tag):用来更细地去划分消息的种类。比如消息的主题是手机,那对应的tag可能有苹果手机,谷歌手机等。
    同时producer发送消息是向一个topic发送消息,consumer也是从一个topic接受消息。
  • 分组(Group):一个producer或者一个consumer就是一个服务节点。可能业务量过大,一个节点处理不过来,那就可以增加节点处理相同的业务,那这些处理相同业务的节点就可以分为一个group
  • 消息队列(Message Queue):通常处理消息逼发送消息要复杂,所以一个producer往往有多个consumer。为了提高并发率,消息到了topic会被分发到多个message queue中。同一组的每个消费者有自己的一个MQ,他们消费消息时就可以并发进行。
  • 偏移量(Offset):消息队列中有很多偏移量的概念,都是用来表示数据的多少。比如consumerOffset用来表示已经消费的消息个数,
    .

请添加图片描述


3、安装和启动

3.1、命令行启动

从官网下载最新版本的Binary Package即可,目前是5.1.0

根据官网手册操作即可https://rocketmq.apache.org/docs/quickStart/01quickstart/。

我自己文件放到/Library/rocketmq-all-5.1.0-bin-release下。现在就算是安装好了,随时可以进入目录用命令行启动项目。

架构中说过RocketMQ有四个部分分别是broker用来保存和持久化信息,server用来注册节点,还有就是producerconsumer

下面会分别启动这四个应用。

3.1.1、启动Server

在进入编译好项目的/bin目录下,可以用下面指令启动项目和查看日志

nohup sh mqnamesrv &
tail -f ~/logs/rocketmqlogs/namesrv.log

server的默认端口号是9876

显示下面的内容表示启动成功

MacBook-Pro:bin user$ tail -f ~/logs/rocketmqlogs/namesrv.log
2023-03-16 21:04:56 INFO main - The Name Server boot success. serializeType=JSON
2023-03-16 21:04:56 INFO NettyClientScan_thread_1 - createChannel: begin to connect remote host[192.168.2.3:9876] asynchronously
2023-03-16 21:04:56 INFO NettyClientWorkerThread_1 - NETTY CLIENT PIPELINE: CONNECT  UNKNOWN => 192.168.2.3:9876
2023-03-16 21:04:56 INFO NettyClientScan_thread_1 - createChannel: connect remote host[192.168.2.3:9876] success, AbstractBootstrap$PendingRegistrationPromise@25cfa9a3(success)
2023-03-16 21:04:56 INFO NettyServerCodecThread_1 - NETTY SERVER PIPELINE: channelRegistered 192.168.2.3:50806
2023-03-16 21:04:56 INFO NettyServerCodecThread_1 - NETTY SERVER PIPELINE: channelActive, the channel[192.168.2.3:50806]

3.1.2、启动Broker

之后到bin目录启动文件,返回值是进程号PID

nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &
[1] 59852

发现日志开始打印很多东西,往下滑,会看到当前broker成功注册的消息,那broker就启动成功。

2023-03-16 22:16:08 INFO main - brokerConfigPath=
2023-03-16 22:16:08 INFO main - rocketmqHome=/Library/rocketmq-all-5.1.0-bin-release
2023-03-16 22:16:08 INFO main - namesrvAddr=localhost:9876
2023-03-16 22:16:08 INFO main - listenPort=6888
2023-03-16 22:16:08 INFO main - brokerIP1=192.168.2.3
2023-03-16 22:16:08 INFO main - brokerIP2=192.168.2.3
2023-03-16 22:16:08 INFO main - brokerPermission=6
2023-03-16 22:16:08 INFO main - defaultTopicQueueNums=8
2023-03-16 22:16:08 INFO main - autoCreateTopicEnable=true
2023-03-16 22:16:08 INFO main - clusterTopicEnable=true
# 省略中间内容
2023-03-16 22:16:13 INFO brokerOutApi_thread_1 - Registering current broker to name server completed. TargetHost=localhost:9876

另外查看进程号也能验证broker启动成功,看第一行的信息

$ ps -ef | grep 59852501 59852 24009   0 10:16下午 ttys001    0:00.01 sh bin/mqbroker -n localhost:9876 --enable-proxy501 59856 59852   0 10:16下午 ttys001    0:00.01 sh /Library/rocketmq-all-5.1.0-bin-release/bin/runserver.sh -Drmq.logback.configurationFile=/Library/rocketmq-all-5.1.0-bin-release/conf/rmq.proxy.logback.xml org.apache.rocketmq.proxy.ProxyStartup -n localhost:9876 -pm local501 62270 24009   0 10:22下午 ttys001    0:00.00 grep 59852

3.1.2.1、修改初始内存

因为broker默认会占用8g内存,某些情况下会因为内存不足而启动失败,如果需要修改内存大小需要到/bin/runbroker.sh修改指令。

vim /bin/runbroker.sh

99行的位置,

JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"

本地启用我就设成512M

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m"

3.1.3、总结

启动服务

# 启动namesrv服务
nohup sh bin/mqnamesrv &  
# 查看日志
tail -f ~/logs/rocketmqlogs/namesrv.log
# 启动broker服务
nohup sh bin/mqbroker &  
# 查看日志 
tail -f ~/logs/rocketmqlogs/broker.log

关闭服务

# 关闭namesrv服务
sh bin/mqshutdown namesrv
# 关闭broker服务
sh bin/mqshutdown broker



3.2、启动管理系统

管理页面让我们更直观方便地管理观察MQ。

到https://github.com/apache/rocketmq-dashboard下载项目。

这是一个Maven管理的java项目,我们先修改配置,指定server地址,因为这里是本地启动的server所以就是本地地址。

配置文件是/src/main/resources/application.yml ,修改里面的配置项,指定为本地地址

rocketmq:config:namesrvAddr: localhost:9876

之后进入项目根目录打包

cd /Users/user/Downloads/rocketmq-dashboard-master 
mvn package

启动打包好的jar文件

java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar

打开网页localhost:8080
在这里插入图片描述

相关内容

热门资讯

圣诞观光电车成为萨格勒布亮丽风...   作为克罗地亚首都萨格勒布一年一度圣诞庆祝活动的一部分,“快乐圣诞观光电车”再次穿梭于萨格勒布的主...
文旅融铸魂 全域启新程——榆次... “十四五”时期,是榆次文旅产业高质量发展的黄金时期,也是成果丰硕、亮点纷呈的五年。在习近平总书记“以...
国内正规的旅行社导游企业推荐几... 国内正规的旅行社导游企业深度解析与推荐 在文旅行业蓬勃发展的今天,一支专业、规范、服务优质的导游队...
游乐园的玩耍对孩子成长有哪些意... 在当下,专业的游乐设施工厂不断推陈出新,户外游乐设备的设计愈发精巧多元,从充满挑战的攀爬架到趣味十足...
韩国《奇迹MU》游戏抽取概率造... 文 / 游戏合规君 胡俊成 一、2025全球著名电竞城市发展指数排行:上海连续5年前三、首尔空降第一...