- RocketMQ系列说明
- 一、RocketMQ下载
- 二、RocketMQ安装
- 三、RocketMQ启动
- 3.1 Linux
- 3.2 Windows
- 四、RocketMQ控制台
- 五、安全配置
- 5.1 公网访问
- 5.2 修改端口
本系列主要更新RocketMQ核心基础 & SringBoot整合使用 & 源码分析,所有文章内容均为个人亲测实践,有错误的地方欢迎大家批评指正
参考文章说明:除了官网文档,如果有需要资料书籍的朋友评论留下邮箱有时间给大家发过去
- 尚硅谷分布式消息队列RocketMQ笔记
- RocketMQ实战与原理解析-杨开元
- 官网文档
一、RocketMQ下载本节主要讲安装,也可以先看后面的概念介绍部分再回来看本节
- 官网地址:http://rocketmq.apache.org/
- 下载地址:http://rocketmq.apache.org/release_notes/release-notes-4.9.1/
- 源码地址:https://github.com/apache/rocketmq
- 中文文档:https://github.com/apache/rocketmq/tree/master/docs/cn
- 在下载页面,下载4.9.1版本RocketMQ
- 下载完成后,上传到对应服务器(采用的是CentOS7)
- 解压压缩包
unzip rocketmq-all-4.9.1-bin-release.zip
- 名称太长,可以选择是否重名名
mv rocketmq-all-4.9.1-bin-release rocketmq-4.9.1
- 目录结构
- benchmark:包括运行 benchmark 程序的 shell 脚本
- bin:含有各种RocketMQ shell 脚本( Linux 平台)和 cmd 脚本( Windows 平台),比如常用的启动 NameServer 的脚本 mqnamesrv,启动 Broker 的脚本 mqbroker,集群管理脚本 mqadmin等
- conf:示例配置文件,包括三种方式的broker文件、logback 文件等,用户在配置文件时,一般基于这些示例配置文件,加上自己特殊的需求即可
- lib:包括RocketMQ各个模块编译成的jar包以及RocketMQ依赖的jar包
[root@server01 rocketmq-4.9.1]# ll
total 40
drwxr-xr-x. 2 root root 126 Oct 24 14:24 benchmark
drwxr-xr-x. 3 root root 4096 Oct 24 14:24 bin
drwxr-xr-x. 6 root root 211 Oct 24 14:24 conf
drwxr-xr-x. 2 root root 4096 Oct 24 14:24 lib
-rwxr-xr-x. 1 root root 17327 Oct 24 14:24 LICENSE
-rwxr-xr-x. 1 root root 1338 Oct 24 14:24 NOTICE
-rwxr-xr-x. 1 root root 5132 Oct 24 14:24 README.md
- 所以RocketMQ的安装,只需要解压完成即完成安装
- linux安装和windows安装基本一致,只需解压即可,只是启动脚本不一样
- 启动单机的消息队列服务比较简单,不需要写配置文件,只需要依次启动本机的 NameServer和Broker即可
- 启动NameServer
sh bin/mqnamesrv &
- 命令说明
usage: mqnamesrv [-c ] [-h] [-n ] [-p]
-c,--configFile Name server config properties file
-h,--help Print help
-n,--namesrvAddr Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
-p,--printConfigItem Print all config item
- 日志目录:tail -f ~/logs/rocketmqlogs/namesrv.log
- 启动Brocker
sh bin/mqbroker -n 127.0.0.1:9876 -c conf/broker.conf &
- 命令说明
usage: mqbroker [-c ] [-h] [-m] [-n ] [-p]
-c,--configFile Broker config properties file
-h,--help Print help
-m,--printImportantConfig Print important config item
-n,--namesrvAddr Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
-p,--printConfigItem Print all config item
- 如果是公网,则需要指定NameServer地址为公网地址
- 不需要指定 http/https 协议
sh bin/mqbroker -n www.xxxx.com:9876 -c conf/broker.conf &
- 日志路径:tail -f ~/logs/rocketmqlogs/broker.log
- 关闭broker和namesrv
> sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK
> sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK
- 为了避免内存占用过大,可以修改 runserver.sh、runbroker.sh 文件指定内存大小
- 启动完成后可以通过jps查看查看进程
[root@TianXinCoord rocketmq_source_code_topic]# jps
4241 BrokerStartup # broker
4214 NamesrvStartup # 名称服务
9708 Jps
3.2 Windows
- 添加环境变量
- D:\rocketmq\server:存储了解压后的RocketMQ文件
ROCKETMQ_HOME="D:\rocketmq\server"
NAMESRV_ADDR="127.0.0.1:9876"
- 启动NameServer
.\bin\mqnamesrv.cmd
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
- 启动Broker
- autoCreateTopicEnable=true:启用自动创建topic,如果关闭则需要手工创建
./bin/mqbroker -n 127.0.0.1:9876 -c conf/broker.conf
The broker[LAPTOP-IA8CO8JN, 172.31.240.22:10911] boot success. serializeType=JSON and name server is rocketmq01.com:9876
- 关闭对应服务只需要关闭窗口即可
- 下载源码:https://github.com/apache/rocketmq-externals/tree/release-rocketmq-console-1.0.0
- 注意分支信息:release-rocketmq-console-1.0.0,控制台是rocketmq-externals项目的其中一个分支
- 找到rocketmq-console,编辑application.properties配置文件,将项目使用的rocketmq.config.namesrvAddr配置上(或者在项目启动时,以参数的形式配置去)
- server.port=8888
- rocketmq.config.namesrvAddr=127.0.0.1:9876
- 多个NameServer使用逗号分隔
server.contextPath=
server.port=8888
#spring.application.index=true
spring.application.name=rocketmq-console
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.config=classpath:logback.xml
#if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
rocketmq.config.namesrvAddr=localhost:9876
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
rocketmq.config.isVIPChannel=
#rocketmq-console's data path:dashboard/monitor
rocketmq.config.dataPath=/tmp/rocketmq-console/data
#set it false if you don't want use dashboard.default true
rocketmq.config.enableDashBoardCollect=true
- 将rocktmq-console打成jar包,得到rocketmq-console-ng-1.0.0.jar
mvn clean package -Dmaven.test.skip=true
- 运行jar包,启动项目,这里也可以设置rocketmq.config.namesrvAdd
java -jar rocketmq-console-ng-1.0.0.jar --server.port=8888 --rocketmq.config.namesrvAddr=127.0.0.1:9876
- 访问地址即可:http://localhost:8888
- RocketMQ未配置情况下默认只能本地,如果需要外网访问需要重新配置
- 修改 conf/broker.conf,指定名称服务地址的 brokerIp
- 当本机有多个网卡时,通过 brokerIP1=<指定id> 指定,否则有可能会识别到错误的地址
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
namesrvAddr=公网IP:9876
brokerIP1=公网IP
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
- 启动broker时指定配置文件
sh bin/mqbroker -n <公网ip/域名>:9876 -c conf/broker.conf &
- 控制台访问也需要配置对应的名称服务
java -jar rocketmq-console-ng-1.0.0.jar --server.port=8888 --rocketmq.config.namesrvAddr=<公网ip/域名>:9876
5.2 修改端口
- namesrv默认在9876端口进行监听,也可以指定自定义端口
- 新建属性配置文件,例如在 /rocketmq/config/ 下新建 namesrv.propertes 配置,里面指定 listenPort
listenPort=9876
- 启动namesrv时通过 -c <路径> 指定配置文件所在位置即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)