下载地址
https://rocketmq.apache.org/download
单节点部署
1、修改jvm配置
RocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小
2、启动NameServer
nohup sh bin/mqnamesrv &
查看启动日志:tail -f ~/logs/rocketmqlogs/namesrv.log
默认端口9876
使用其他端口方法,修改配置文件:namesrv.properties 内容 listenPort=9877
nohup sh bin/mqnamesrv -c conf/namesrv.properties &
3、启动Broker
nohup sh bin/mqbroker -n localhost:9876 &
nohup sh bin/mqbroker -n "localhost:9876;localhost:9876" &
查看启动日志:tail -f ~/logs/rocketmqlogs/broker.log
默认端口10911
使用其他端口,修改配置文件:broker.properties 内容 listenPort=10951
nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.properties &
4、测试收发消息
发消息:
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
收消息
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
5、停止rocketmq
sh bin/mqshutdown namesrv
sh bin/mqshutdown broker
集群部署
1、rocketmq各角色介绍
producer:消息的发送者;举例:发信者
consumer:消息接收者;举例:收信者
broker:暂存和传输消息;举例:邮局
nameServer:管理Broker;举例:各个邮局的管理机构
topic:区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic消息
message Queue:相当于是Topic的分区;用于并行发送和接收消息
2、修改jvm配置
RocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小
3、修改端口号
配置文件添加 listenPort=10951
4、双主双从集群搭建(在单机搭建)
1、Host添加信息
192.168.25.135 rocketmq-nameserver1
192.168.25.135 rocketmq-nameserver2
重启网卡systemctl restart network
5、新建4个用户
由于是单机,为了使每个服务使用单独的一个文件夹存储
useradd rocketmq1 rocketmq2 rocketmq3 rocketmq4
并且把rocketmq安装包修改端口后发送给对应的用户
6、启动name server
使用rocketmq1启动2个节点
nohup sh bin/mqnamesrv &
nohup sh bin/mqnamesrv -c conf/namesrv-9877.properties &
7、启动broker(双主双从异步集群)
1.主节点1端口:listenPort=10911、brokerIP1=外网ip
nohup sh bin/mqbroker -n "rocketmq-nameserver1:9876;rocketmq-nameserver1:9877" -c conf/2m-2s-async/broker-a.properties &
2.从节点1端口:listenPort=10921、brokerIP1=外网ip
nohup sh bin/mqbroker -n "rocketmq-nameserver1:9876;rocketmq-nameserver1:9877" -c conf/2m-2s-async/broker-a-s.properties &
3.主节点2端口:listenPort=10931、brokerIP1=外网ip
nohup sh bin/mqbroker -n "rocketmq-nameserver1:9876;rocketmq-nameserver1:9877" -c conf/2m-2s-async/broker-b.properties &
4.从节点2端口:listenPort=10941、brokerIP1=外网ip
nohup sh bin/mqbroker -n "rocketmq-nameserver1:9876;rocketmq-nameserver1:9877" -c conf/2m-2s-async/broker-b-s.properties &
topic命令-单机
bin/mqadmin updateTopic -n ip:9876 -b ip:10911 -t topicRbc 创建更新topic(单机)
bin/mqadmin deleteTopic -n ip:9876 -b ip:10911 -t topicRbc 删除topic(单机)
topic命令-集群
logs/rocketmqlogs/ 日志目录
bin/mqadmin clusterList -n "ip:9876;ip:9877" 查询集群信息
bin/mqadmin topicList -n "ip:9876;ip:9877" 查询所有topic列表
bin/mqadmin updateTopic -n "ip:9876;ip:9877" -c DefaultCluster -t topicRbc 创建更新topic(集群)
bin/mqadmin deleteTopic -n "ip:9876;ip:9877" -c DefaultCluster -t topicRbc 删除topic(集群)
rocketmq安装,修改配置文件默认的JVM大小Xms、Xmx
bin/runbroker.sh
bin/runserve
tools.sh
rocketmq单机启动
启动NameServer
bin/mqnamesrv &
启动Broker
bin/mqbroker -n ip:9876 -c conf/broker.conf &
rocketmq集群启动
启动nameserv
nohup bin/mqnamesrv > /dev/null 2>&1 &
启动两主两从
nohup bin/mqbroker -c conf/2m-2s-async/broker-a.properties -n "127.0.0.1:9876" > /dev/null 2>&1 &
rocketmq停止
bin/mqshutdown broker
bin/mqshutdown namesrv
rocketmq界面
下载包:rocketmq-console-ng-1.0.0.jar
nohup java -jar rocketmq-console-ng-1.0.0.jar --server.port=8087 --rocketmq.config.namesrvAddr="IP:9876" > /dev/null 2>&1 &
访问:IP:8087
测试消息发送
export NAMESRV_ADDR=localhost:9876
bin/tools.sh org.apache.rocketmq.example.quickstart.Producer 发送消息
bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer 接收消息
Kafka实例
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>2.5.14.RELEASE</version>
</dependency>
配置文件
spring.kafka.bootstrap-servers = kafka地址
发送消息
@Autowired
private KafkaTemplate<String, String> template;
template.send("topic", jsonData);
消费消息
@KafkaListener(topics = "", groupId = "")
public void listen(ConsumerRecord<?, ?> record) {
Optional<?> kafkaMessage = Optional.ofNullable(record.value());
if (kafkaMessage.isPresent()) {
try {
String message = (String) kafkaMessage.get();
} catch (Exception e) {
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本