# Zcccccy-RocketMQ5.0 **Repository Path**: Zcccccy/zcccccy-rocketmq5.0 ## Basic Information - **Project Name**: Zcccccy-RocketMQ5.0 - **Description**: Spring Boot对接RocketMQ5.0 - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2024-01-30 - **Last Updated**: 2025-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #

Spring Boot对接RocketMQ5.0

### 安装RocketMQ5.0(官网方法) ##### 1.下载RocketMQ5.0 RocketMQ 的安装包分为两种,二进制包和源码包。 点击这里 [下载](https://dist.apache.org/repos/dist/release/rocketmq/5.1.4/rocketmq-all-5.1.4-source-release.zip) Apache RocketMQ 5.1.4的源码包。你也可以从 [这里](https://dist.apache.org/repos/dist/release/rocketmq/5.1.4/rocketmq-all-5.1.4-bin-release.zip) 下载到二进制包。二进制包是已经编译完成后可以直接运行的,源码包是需要编译后运行的。 解压5.1.4的源码包并编译构建二进制可执行文件。 ```shell $ unzip rocketmq-all-5.1.4-source-release.zip $ cd rocketmq-all-5.1.4-source-release/ $ mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U $ cd distribution/target/rocketmq-5.1.4/rocketmq-5.1.4 ``` ##### 2.启动NameServer ```shell ### 启动namesrv $ nohup sh bin/mqnamesrv & ### 验证namesrv是否启动成功 $ tail -f ~/logs/rocketmqlogs/namesrv.log The Name Server boot success... ``` 如果自己服务器内存不够大的话可以更改 bin/runserver.sh 中内存信息 ##### 3.启动Broker+Proxy ```shell ### 先启动broker $ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy & ### 验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a $ tail -f ~/logs/rocketmqlogs/proxy.log The broker[broker-a,192.169.1.2:10911] boot success... ``` 至此,一个单节点副本的 RocketMQ 集群已经部署起来了,我们可以利用脚本进行简单的消息收发。 ##### 4.关闭服务 ```shell $ sh bin/mqshutdown broker The mqbroker(36695) is running... Send shutdown request to mqbroker with proxy enable OK(36695) $ sh bin/mqshutdown namesrv The mqnamesrv(36664) is running... Send shutdown request to mqnamesrv(36664) OK ``` ## 创建Topic 主题必须有消息类型,且只能接收相对应消息类型的消息 Normal:普通消息,消息本身无特殊语义,消息之间也没有任何关联。 FIFO:顺序消息,Apache RocketMQ 通过消息分组MessageGroup标记一组特定消息的先后顺序,可以保证消息的投递顺序严格按照消息发送时的顺序。 Delay:定时/延时消息,通过指定延时时间控制消息生产后不要立即投递,而是在延时间隔后才对消费者可见。 Transaction:事务消息,Apache RocketMQ 支持分布式事务消息,支持应用数据库更新和消息调用的事务一致性保障。 ###### 普通消息 ```shell sh mqadmin updateTopic -n -t -c -a +message.type=NORMAL ``` ###### 定时/延时消息 ```shell sh mqadmin updateTopic -n -t -c -a +message.type=DELAY ``` ###### 顺序消息 ```shell sh mqadmin updateTopic -n -t -c -a +message.type=FIFO ``` ###### 事务消息 ```shell sh mqadmin updateTopic -n -t -c -a +message.type=TRANSACTION ``` nameserver_address是9876端口 cluster_name一般为DefaultCluster ## 修改项目配置 根据信息修改配置 ```yaml # TODO endpoints 是Proxy的地址和端口列表,一般是xxx:8081;xxx:8081,并非9876端口。在启动Broker+Proxy的日志中有显示。 rocketmq: # 生产者配置 producer: # Endpoints rocketMQ端点 endpoints: 127.0.0.1:8081 # 最大重试次数 默认3 max-attempts: 3 # 主题 topic-list: - system-message - user-message - delay-message # 消费者配置 consumer: #是否开启 enabled: true # Endpoints rocketMQ端点 endpoints: 127.0.0.1:8081 # 官方建议:确保同一组中的每个消费者订阅相同的主题。 group: zcccccy-message-consumer # 主题 topic-list: - system-message - user-message - delay-message ``` ## 发送消息 ##### 启动项目 项目启动成功截图 ![img.png](img.png) ##### 发消息 调用 MessageProducerController 中接口发送消息 ![img_1.png](img_1.png)