RocketMQ-核心篇(1)-软件安装

RocketMQ系列说明

本系列主要更新RocketMQ核心基础 & SringBoot整合使用 & 源码分析,所有文章内容均为个人亲测实践,有错误的地方欢迎大家批评指正

参考文章说明:除了官网文档,如果有需要资料书籍的朋友评论留下邮箱有时间给大家发过去

  • 尚硅谷分布式消息队列RocketMQ笔记
  • RocketMQ实战与原理解析-杨开元
  • 官网文档

本节主要讲安装,也可以先看后面的概念介绍部分再回来看本节

一、RocketMQ下载

  1. 官网地址:http://rocketmq.apache.org/
  2. 下载地址:http://rocketmq.apache.org/release_notes/release-notes-4.9.1/
  3. 源码地址:https://github.com/apache/rocketmq
  4. 中文文档:https://github.com/apache/rocketmq/tree/master/docs/cn
  5. 在下载页面,下载4.9.1版本RocketMQ
  6. 下载完成后,上传到对应服务器(采用的是CentOS7)

二、RocketMQ安装

  1. 解压压缩包
unzip rocketmq-all-4.9.1-bin-release.zip
  1. 名称太长,可以选择是否重名名
mv rocketmq-all-4.9.1-bin-release rocketmq-4.9.1
  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
  1. 所以RocketMQ的安装,只需要解压完成即完成安装
  2. linux安装和windows安装基本一致,只需解压即可,只是启动脚本不一样

三、RocketMQ启动

3.1 Linux

  1. 启动单机的消息队列服务比较简单,不需要写配置文件,只需要依次启动本机的 NameServer和Broker即可
  2. 启动NameServer
sh bin/mqnamesrv &
  • 命令说明
usage: mqnamesrv [-c <arg>] [-h] [-n <arg>] [-p]
 -c,--configFile <arg>    Name server config properties file
 -h,--help                Print help
 -n,--namesrvAddr <arg>   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
  1. 启动Brocker
sh bin/mqbroker -n 127.0.0.1:9876 -c conf/broker.conf &
  • 命令说明
usage: mqbroker [-c <arg>] [-h] [-m] [-n <arg>] [-p]
 -c,--configFile <arg>       Broker config properties file
 -h,--help                   Print help
 -m,--printImportantConfig   Print important config item
 -n,--namesrvAddr <arg>      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
  1. 关闭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
  1. 为了避免内存占用过大,可以修改 runserver.sh、runbroker.sh 文件指定内存大小
  2. 启动完成后可以通过jps查看查看进程
[root@TianXinCoord rocketmq_source_code_topic]# jps
4241 BrokerStartup # broker
4214 NamesrvStartup # 名称服务
9708 Jps

3.2 Windows

  1. 添加环境变量
    • D:\rocketmq\server:存储了解压后的RocketMQ文件
ROCKETMQ_HOME="D:\rocketmq\server"
NAMESRV_ADDR="127.0.0.1:9876"
  1. 启动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
  1. 启动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
  1. 关闭对应服务只需要关闭窗口即可

四、RocketMQ控制台

  1. 下载源码:https://github.com/apache/rocketmq-externals/tree/release-rocketmq-console-1.0.0
    • 注意分支信息:release-rocketmq-console-1.0.0,控制台是rocketmq-externals项目的其中一个分支
  2. 找到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
  1. 将rocktmq-console打成jar包,得到rocketmq-console-ng-1.0.0.jar
mvn clean package -Dmaven.test.skip=true
  1. 运行jar包,启动项目,这里也可以设置rocketmq.config.namesrvAdd
java -jar rocketmq-console-ng-1.0.0.jar --server.port=8888 --rocketmq.config.namesrvAddr=127.0.0.1:9876
  1. 访问地址即可:http://localhost:8888

五、安全配置

5.1 公网访问

  1. RocketMQ未配置情况下默认只能本地,如果需要外网访问需要重新配置
  2. 修改 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
  1. 启动broker时指定配置文件
sh bin/mqbroker -n <公网ip/域名>:9876 -c conf/broker.conf &
  1. 控制台访问也需要配置对应的名称服务
java -jar rocketmq-console-ng-1.0.0.jar --server.port=8888 --rocketmq.config.namesrvAddr=<公网ip/域名>:9876

5.2 修改端口

  1. namesrv默认在9876端口进行监听,也可以指定自定义端口
  2. 新建属性配置文件,例如在 /rocketmq/config/ 下新建 namesrv.propertes 配置,里面指定 listenPort
listenPort=9876
  1. 启动namesrv时通过 -c <路径> 指定配置文件所在位置即可

猜你喜欢

转载自blog.csdn.net/sinat_34104446/article/details/124784584
今日推荐