官方文档 环境 centos7.9 openjdk17
下载解压
配置好环境 下载编译好的二进制文件
配置文件修改
解压后进行配置 默认启动内存过高,启动失败;需要重新配置;(内存够用的无需以下配置)
- 位置在 解压文件bin目录下runserver.sh JAVA_OPT=“${JAVA_OPT} -server -Xms128m -Xmx128m -XX:MetaspaceSize=32m -XX:MaxMetaspaceSize=64m”
{
# Example of JAVA_MAJOR_VERSION value : '1', '9', '10', '11', ...
# '1' means releases before Java 9
JAVA_MAJOR_VERSION=$("$JAVA" -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F '.' '{print $1}')
if [ -z "$JAVA_MAJOR_VERSION" ] || [ "$JAVA_MAJOR_VERSION" -lt "9" ] ; then
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
else
#这下面第一个原来设置内存太大自行修改合适内存
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -XX:MetaspaceSize=32m -XX:MaxMetaspaceSize=64m"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"
JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log:time,tags:filecount=5,filesize=30M"
fi
}
- bin目录下runbroker.sh JAVA_OPT=“${JAVA_OPT} -server -Xms128m -Xmx128m”
choose_gc_log_directory
#这下面第一行修改内存大小
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m"
choose_gc_options
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
- conf目录下 broker.conf 新增
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
namesrvAddr = 公网ip:9876
autoCreateTopicEnable = true
brokerIP1 = 公网ip
启动
参考官方网站
- 启动NameServer(输入命令位置在bin上一层目录)
命令在位置 cd /usr/local/mq/rocketmq-all-5.3.1-bin-release/ (不要进入bin下启动;在bin上一层目录)
启动 nohup sh bin/mqnamesrv &
关闭 nohup sh bin/mqshutdown namesrv
- 启动Broker+Proxy (输入命令位置在bin上一层目录)
nohupsh bin/mqbroker -n localhost:9876 --enable-proxy &
端口占用问题解决 (json格式 自定义端口即可) 目录/conf/rmq-proxy.json
{
"rocketMQClusterName": "DefaultCluster",
"grpcServerPort": 自定义端口,
"remotingListenPort": 自定义端口
}
需要阿里云安全组开通以便在另外服务器访问(如果都是本地服务器部署不用开通)
排查问题可以在解压根目录下 nohup.out 文件查看Mon Dec 23 17:19:58 CST 2024 rocketmq-proxy startup successfully 启动成功
阿里云服务器安全组开通端口10911 10909 9876
服务端完成
客户端RocketMQ Dashboard
参考官网下载;不一定非要部署到服务端上(centos中) 我直接放到自己电脑上了 用idea打开运行即可
配置文件参考
spring:
application:
name: rocketmq-dashboard
logging:
config: classpath:logback.xml
rocketmq:
config:
# if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, default localhost:9876
# configure multiple namesrv addresses to manage multiple different clusters
namesrvAddrs:
- 公网ip:9876
# - 127.0.0.2:9876
# - 10.151.47.32:9876;10.151.47.33:9876;10.151.47.34:9876
# - 10.151.47.30:9876
# if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
isVIPChannel:
# timeout for mqadminExt, default 5000ms
timeoutMillis:
# rocketmq-console's data path:dashboard/monitor
dataPath: /tmp/rocketmq-console/data
# set it false if you don't want use dashboard.default true
enableDashBoardCollect: true
# set the message track trace topic if you don't want use the default one
msgTrackTopicName:
ticketKey: ticket
# must create userInfo file: ${rocketmq.config.dataPath}/users.properties if the login is required
loginRequired: false
useTLS: false
proxyAddr: 公网ip:端口
proxyAddrs:
- 公网ip:端口
proxyAddr 端口就是 “remotingListenPort”: 的端口号
注意: 此模式是代理模式启动,topic不存在不会自动创建
全部完成