RocketMQ5部署单节点服务

2024-09-09 09:07:47 浏览数 (2)

关于RocketMQ的单节点部署官方文档已经描述得非常清楚了,这里只是做一个简单的备忘。 如下安装步骤均基于最新的Apache RocketMQ 5.3.0实现。

下载安装RocketMQ

直接下载官方编译后的二进制包到本地并解压。

代码语言:javascript复制
$ unzip rocketmq-all-5.3.0-bin-release.zip

默认情况下,启动RocketMQ至少需要4G内存(当Java版本小于9时默认的新生代大小为2G),如果安装RocketMQ的环境没有这么大的内存空间时需要修改对应的JVM参数。 如下在Java 8环境中修改RocketMQ的初始内存参数(ROCKETMQ_HOME为RocketMQ的安装目录)。 修改ROCKETMQ_HOME/bin/runserver.sh

修改ROCKETMQ_HOME/bin/runbroker.sh

启动NameServer

代码语言:javascript复制
# 启动namesrv
$ nohup sh bin/mqnamesrv &

# 验证namesrv是否启动成功
# 如果在namesrv.log中看到'The Name Server boot success..', 表示NameServer已成功启动
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

启动Broker Proxy

NameServer成功启动后,需要启动Broker和Proxy。 在这里使用Local模式部署,即Broker和Proxy同进程部署。 5.x版本也支持Broker和Proxy分离部署以实现更灵活的集群能力,详见部署教程。

代码语言:javascript复制
# 启动broker和proxy
$ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &

# 验证broker是否启动成功, 比如broker的ip是192.168.3.156,然后名字是broker-a
# 在proxy.log中看到“The broker[brokerName,ip:port] boot success..”,这表明broker已成功启动
$ tail -f ~/logs/rocketmqlogs/proxy.log
The broker[broker-a,192.168.3.156:10911] boot success...

关闭服务

可以通过以下方式关闭服务。

代码语言:javascript复制
# 关闭Broker和Proxy
$ sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker with proxy enable OK(36695)

# 关闭NameServer
$ sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

安装图形化界面

RocketMQ Dashboard是RocketMQ的管控利器,为用户提供客户端和应用程序的各种事件、性能的统计信息,支持以可视化工具代替Topic配置、Broker管理等命令行操作。

下载rocketmq-dashboard源码后,根据情况修改application.yml中的参数值,如:server.portrocketmq.config.namesrvAddrsrocketmq.config.proxyAddrrocketmq.config.proxyAddrs等。

编译rocketmq-dashboard

代码语言:javascript复制
$ mvn clean package -Dmaven.test.skip=true

运行rocketmq-dashboard

代码语言:javascript复制
$ java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar

提示:Started App in x.xxx seconds (JVM running for x.xxx) 表示启动成功。

浏览器页面访问:rocketmq-dashboard.addr:server.port即可看到控制台界面。

测试消息收发

工具测试消息收发

代码语言:javascript复制
# 通过环境变量设置NameServer地址
$ export NAMESRV_ADDR=localhost:9876

# 发送消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
 SendResult [sendStatus=SEND_OK, msgId= ...

# 接收消息
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...

SDK测试消息收发

第一步:在Maven项目的pom.xml文件中引入SDK依赖。

代码语言:javascript复制
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client-java</artifactId>
    <version>${rocketmq-client-java-version}</version>
</dependency> 

第二步:通过mqadmin创建Topic。

代码语言:javascript复制
$ sh bin/mqadmin updatetopic -n localhost:9876 -t TestTopic -c DefaultCluster

第三步:编写消息生产者和消费者,具体示例详见java example。

值得注意的是:RocketMQ支持SimpleConsumer和PushConsumer两种消费者类型,可以选择其中任意一种方式订阅消息。

【参考】 RocketMQ5.x单机部署 Rocketmq 5.x 开启proxy导致8080/8081端口冲突 Rocketmq 5.x Java 客户端 rocketmq5.x创建topic RocketMQ5.0以上版本定时/延时消息的topic,除了手动用mqadmin创建,别的方式吗? RocketMQ Dashboard

0 人点赞