一、系统环境要求:
二、RocketMQ下载
1、到官网下载地址RocketMQ二进制版
2、下载得到RocketMQ二进制版压缩包
三、RocketMQ安装配置
1、将RocketMQ上传到CentOS7 /usr
2、通过 unzip 命令解压RocketMQ压缩包
3、重命名解压得到的文件夹为rocketmq47
4、RocketMQ配置
① 配置nameserver、master映射
② 配置存储路径
③ 配置消息队列(单机版)
④ 配置日志目录
⑤ 设置启动参数
5.启动RocketMQ
6.查看日志验证
⭐RocketMQ单机版配置成功~
7.关闭RocketMQ
附: RocketMQ图形化显示控制台配置:
1、到github下载源码
2、在IDEA中导入并配置rocketmq-console工程
3、启动控制台:
官方要求:
1、64位系统,Linux/Unix/Mac 【注意无Windows】
2、64位 JDK 1.8版本以上
3、Maven 版本3.2.x 【Maven非必需】
4、Git 【Git非必需】
5、4G以上磁盘空间
附:官网下载地址
unzip rocketmq-all-4.7.0-bin-release.zip
※ 注:若出现以下错误:
可以通过以下命令安装:
sudo yum install -y unzip zip
安装好之后即可通过 unzip 命令解压 zip压缩包~
mv rocketmq-all-4.7.0-bin-release rocketmq47
※ 解释:
- nameserver : 协调多个rocketmq
- master : rocketmq主节点
※ 配置步骤
输入以下命令打开配置文件:
sudo vi /etc/hosts
在文件尾部增加:
192.168.2.128 mqnameserver1 192.168.2.128 mqmaster1
保存并退出~
先切换到/usr/rocketmq47:
cd /etc/rocketmq47
输入以下命令创建文件夹:
mkdir logs mkdir -p mqstore/commitlog mkdir -p mqstore/consumequeue mkdir -p mqstore/index
(1)切换到路径: /usr/rocketmq47/conf
2m-2s-async/sync: 2m 指两个master,2s指两个slaver,async指异步,sync指同步
(2)打开2m-2s-async
(3)配置broker-a.properties
原文件为:
参数解释:
- brokerClusterName:默认集群名
- brokerName:消息队列名
- brokerId:消息队列id 【其中值为0表示当前为master节点,值大于0表示为slaver节点】
- deleteWhen:自动删除冗余文件的时间 【04代表凌晨4点】
- fileReservedTime:文件保留时间【48表示至少48小时】
- brokerRole:消息队列角色【ASYNC为异步,SYNC为同步;MASTER主节点,SLAVER从节点】
- flushDiskType:消息到硬盘的形式【ASYNC_FLUSH为异步,SYNC_FLUSH为同步】
配置步骤:在文件尾部添加以下内容:
namesrvAddr=mqnameserver1:9876 defaultTopicQueueNums=4 autoCreateTopicEnable=true listenPort=10911 storePathRootDir=/usr/rocketmq47/mqstore storePathCommitLog=/usr/rocketmq47/mqstore/commitlog storePathConsuQueue=/usr/rocketmq47/mqstore/consumequeue storePathIndex=/usr/rocketmq47/mqstore/index maxMessageSize=65536
新添加参数解释:
- namesrvAddr:服务地址,【后面的mqnameserver1为映射得到的域名,也可以用IP】
【9876为rocketmq默认端口】
【要是有多个主节点可以在9876后用分号隔开继续追加端口号】
- defaultTopicQueueNums:默认主题数量【4个即可】
- autoCreateTopicEnable : 当某主题不存在时是否允许消息队列自动创建Topic【true 允许,false 不允许】
- listenPort :监听端口,即外界要访问时,对外暴露的端口
- storePathRootDir:文件存储根路径
- storePathCommitLog:日志存储路径
- storePathConsuQueue:消息队列存储路径
- storePathIndex:索引存储路径
- maxMessageSize:消息最大数量 【65536为2的16次方,单位为字节】
切换到/usr/rocketmq47/conf目录
查看 logback_broker.xml:
cat logback_broker.xml
可见上图的变量,我们需要将conf目录下的三个log的xml文件中的${user.home}统一改为/usr/rocketmq47
sed -i 's#${user.home}#/usr/rocketmq47#g' *.xml
Linux命令小贴士:批量查找与替换
打开路径并查看:
cd /usr/rocketmq47/bin && ls
配置 runbroker.sh 和 runserver.sh
sudo vi ./runbroker.sh
sudo vi ./runserver.sh
分别两文件修改以下内存设置: JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
为: JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g"
防止启动内存要求过高导致rocketmq不能正常运行
① 切换到RocketMQ的bin目录下
cd /usr/rocketmq47/bin
② 启动负责协调的NameServer(Root权限下!):
nohup sh mqnamesrv &
jps查看进程:
jps
出现NamesrvStartup进程说明NameServer启动成功:
③ 启动消息队列Broker(Root权限下!):
nohup sh mqbroker -c /usr/rocketmq47/conf/2m-2s-async/broker-a.properties &
jps查看进程:
出现BrokerStartup进程说明Broker启动成功
※ 注:若启动等待时间太久可以按Enter键
打开日志路径并查看:
cd /usr/rocketmq47/logs/rocketmqlogs && ls
查看broker日志:
cat broker.log
------------------------------------------------------------无报错说明运行成功--------------------------------------------------------------------------
查看NameServer日志:
cat namesrv.log
---------------------------------------------------------无报错说明运行成功------------------------------------------------------------------------------
① 切换到RocketMQ的bin目录下
cd /usr/rocketmq47/bin
②关闭Broker
./mqshutdown broker
③关闭NameServer
./mqshutdown namesrv
下载地址:apache / rocketmq-externals ,下载 rocketmq-console
这里我是用谷歌浏览器的GitZip插件单独下载了rocketmq-console,得到了如下压缩包,解压该压缩包到本地路径
IDEA导入工程:
选中解压得到的rocketmq-console,创建Maven工程
Maven导入依赖Jar包后进行Spring-Boot配置:
打开/rocketmq-console/src/main/resources/application.properties ,增加配置:
rocketmq.config.namesrvAddr=192.168.2.128:9876
运行app:
浏览器打开 localhost:8080
原理:控制台通过服务器地址192.168.2.128访问服务器