RocketMq单机部署
单机版搭建rocketmq服务和可视化界面
目录
一、安装jdk环境
参考之前写的流程 linux-Centos-7-64位:1、 安装JAVA环境
二、RocketMQ服务
1、安装包下载
官网地址:下载 | RocketMQ
2、安装包部署
登录linux服务器,创建文件夹
#mkdri /usr/local/share/rocketmq
#cd /usr/local/share/rocketmq
上传对应的文件包,这边使用工具上传,方式按个人习惯
解压
# unzip rocketmq-all-5.3.0-bin-release.zip
进入目录并复制文件目录的路径
编辑环境配置
# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk-1.8
export ROCKETMQ_HOME=/usr/local/share/rocketmq/rocketmq-all-5.3.0-bin-release
export PATH=$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# nameserver注册中心可以配置多个;隔开
export NAMESRV_ADDR=127.0.0.1:9876
让环境变量生效
source /etc/profile
下面启动 nameserver注册中心 和 Broker
RcoketMQ默认预设的JVM内存是4G,也是RocketMQ的最佳配置,如果内存不够,需要修改下runserver.sh
# cd bin
# vim runserver.sh
改成 512m
启动 nameserver
# nohup ./mqnamesrv &
有时候可执行下面语句也一样, -n 后面的 IP 就是意思通过这个IP可以找到我的意思
# nohup ./mqnamesrv -n 127.0.0.1:9876 &
最好创建指定日志位置,不然下次执行 nohup,日志 nohup.out 会被覆盖
# mkdir /usr/local/share/rocketmq/rocketmq-all-5.3.0-bin-release/logs
# nohup ./mqnamesrv > /usr/local/share/rocketmq/rocketmq-all-5.3.0-bin-release/logs/namesrv.log 2>&1 &
启动后,查看日志
#tail –f ../logs/namesrv.log
关闭nameserver两种方式
a、先查找,后通过命令 kill
# ps -ef|grep mp
#kill -9 10666
b、脚本关闭
# ./mqshutdown namesrv
启动 Broker 服务
Broker 脚本是runbroker.sh 默认预设内存是8G 修改为512m
#vim runbroker.sh
另外还需要修改 Broker 的配置文件
# cd ../conf
# vim broker.conf
# 集群名称
brokerClusterName = DefaultCluster
# Broker名称,集群内位移
brokerName = broker-a
# Broker ID, 0 表示主节点
brokerId = 0
# 删除过期文件的时间(每天凌晨4点)
deleteWhen = 04
# 文件保留时间(小时)
fileReservedTime = 48
# Broker角色(异步主节点)
brokerRole = ASYNC_MASTER
# 异步刷盘模式
flushDiskType = ASYNC_FLUSH
# 允许自动创建 Topic
autoCreateTopicEnable=true
# NameServer 地址,多个地址用分号分隔
namesrvAddr=127.0.0.1:9876
# 启用 ACL 这样就需要配置plain_acl.yml
#aclEnable=true
#这是启用 SQL92 过滤的关键配置
enablePropertyFilter=true
指定配置文件启动 其实不指定好像默认也是用的这个配置
#cd ../bin
# nohup ./mqbroker -c ../conf/broker.conf &
或是下面命令,意思这个Broker注册到本机的9876端口的nameserver上面,其实-c ../conf/broker.conf可以不指定 默认就是 如果是集群 IP就是可以访问到nameserver的IP
#nohup ./mqbroker -c ../conf/broker.conf -n 127.0.0.1:9876 &
最好创建指定日志位置,不然下次执行 nohup,日志 nohup.out 会被覆盖
#nohup ./mqbroker -c ../conf/broker.conf > /usr/local/share/rocketmq/rocketmq-all-5.3.0-bin-release/logs/broker.log 2>&1 &
查看日志
#tail -f ../logs/broker.log
测试MQ发送消息
需要指定nameserver地址,可先执行命令
#export NAMESRV_ADDR='127.0.0.1:9876'
测试发送,会发送1000条数据
#./tools.sh org.apache.rocketmq.example.quickstart.Producer
发送成功。
如果提示 ‘Cannot allocate memory’ 表示内存不足,可将命令修改为
# ./tools.sh -Xms256m -Xmx256m org.apache.rocketmq.example.quickstart.Producer
测试接收消息
#./tools.sh org.apache.rocketmq.example.quickstart.Consumer
如果也是报内存不足,同生产者命令一样处理
这里不做ACL访问白名单限制,有需要可参考原文章链接
截止到此,rocketmq功能基本可用了。
三、RocketMQ可视化界面
拉取下载最新的可视化界面代码:rocketmq-dashboard
可使用idea打成 jar包
或是 使用window命令行打包
#mvn clean package -DskipTests=true
现在服务器创建目录
#mkdir /usr/local/share/rocketmq/rocketmq-console
#cd /usr/local/share/rocketmq/rocketmq-console
然后将 jar 包和项目resources下的 application.yml 一起上传到服务器
application.yml 外置、后面同命令一起启动,方面后期修改
修改配置文件
#vim application.yml
编写个启动脚本 start.sh
#vim start.sh
#!/bin/bash
# 设置应用程序的端口
PORT=9080
# 检查应用程序是否已经在运行
if netstat -tuln | grep ":$PORT " > /dev/null; then
echo "Error: 应用程序已经在端口 $PORT 上运行."
exit 1
fi
# 启动 Jar 包
nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar application.yml > logs/app.log 2>&1 &
echo "应用程序已成功启动."
编写停止脚本
#vim stop.sh
#!/bin/bash
# 设置应用程序的端口
PORT=9080
# 检查应用程序是否在运行
if ! netstat -tuln | grep ":$PORT " > /dev/null; then
echo "Error: 应用程序未在端口 $PORT 上运行."
exit 1
fi
# 获取应用程序的 PID
PID=$(netstat -tuln | grep ":$PORT " | awk '{print \$7}' | awk -F '/' '{print \$1}')
# 杀死应用程序的进程
kill -9 $PID
echo "应用程序已成功关闭."
赋予脚本执行权限
#chmod +x start.sh stop.sh
创建 logs 目录
#mkdir logs
启动
#sh start.sh
浏览器访问: http://192.168.152.130:9080/
暂停
#sh stop.sh
参考文章:
更多推荐
所有评论(0)