前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RocketMQ5部署单节点服务

RocketMQ5部署单节点服务

作者头像
编程随笔
发布2024-09-09 09:07:47
570
发布2024-09-09 09:07:47
举报
文章被收录于专栏:后端开发随笔

关于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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载安装RocketMQ
  • 启动NameServer
  • 启动Broker+Proxy
  • 关闭服务
  • 安装图形化界面
  • 测试消息收发
    • 工具测试消息收发
      • SDK测试消息收发
      相关产品与服务
      腾讯云服务器利旧
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档