RocketMq之单点部署

版权声明: https://blog.csdn.net/qq_24313635/article/details/82885874

RocketMq单点部署,仅供个人开发测试使用,生产环境建议采用2m-2s-async,即两主两从异步复制模式(在博主的下一篇博客中将对这种集群模式做详细的介绍

1.官网下载最新的安装包,rocketmq-all-4.3.1-bin-release.zip

2.解压,解压到/opt目录下

3.自定义nameserver和broker的日志文件的位置,修改conf目录logback_namesrv.xml和logback_broker.xml中的日志文件的路径,这里我将日志文件的根目录替换为/opt/rocketmq-all-4.3.1-bin-release/logs

4.启动nameserver和broker

①sh mqnamesrv &

②sh mqbroker -n localhost:9876 &

③ 生产者验证

 export NAMESRV_ADDR=localhost:9876
 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

④ 消费者验证

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

ps:

① 如果出现Cannot allocate memory 的error,则将bin目录下启动 nameserv 与 broker 的 runbroker.sh 和 runserver.sh 文件中默认分配的内存调小,这里我全部改为128m

② 我们用代码验证,往不存在的topic发送消息时,如果出现No route info of this topic的error,是因为Broker启动时默认的参数autoCreateTopicEnable = false。一般在开发测试环境中会使用默认设置autoCreateTopicEnable = true,但是这样就会导致topic的设置不容易规范管理,没有统一的审核等等,所以在正式环境中会在Broker启动时设置参数autoCreateTopicEnable = false。这样当需要增加topic时就需要在web管理界面上添加即可。

5.部署Mq控制台

①下载rocketmq-console,并编译 mvn clean package -Dmaven.test.skip=true,获得rocketmq-console-ng-1.0.0.jar,上传到服务器

②运行

java -jar rocketmq-console-ng-1.0.0.jar --server.port=12581 --rocketmq.config.namesrvAddr=192.168.124.129:9876 &

6.开放端口

Nameserver的9876端口,Broker的10911端口,VIP通道10909端口(rocketMq默认有开启,我们也可以手动关闭),控制台的12581端口

7.验证

8.关闭

sh bin/mqshutdown broker
sh bin/mqshutdown namesrv

猜你喜欢

转载自blog.csdn.net/qq_24313635/article/details/82885874