RocketMQ单机搭建
原创
©著作权归作者所有:来自51CTO博客作者蓝色土耳其love的原创作品,请联系作者获取转载授权,否则将追究法律责任
1、直接下载二进制编译好的文件,并解压至指定目录(这里/usr/local)
wget https://dlcdn.apache.org/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
unzip rocketmq-all-4.9.4-bin-release.zip
mv rocketmq-all-4.9.4-bin-release rocketMQ
2、解压后的包中 /bin目录下包含了 .cmd 和 .sh ;conf目录下为配置文件,主要是broker.conf ,其中各服务的logback*.xml可根据需要自行配置,lib目录下为依赖jar、
##修改logback*.xml时,可新增自定义日志目录,然后全局替换
## replace "\${user.home}/logs/rocketmqlogs" "\${LOG_HOME}" -- logback_broker.xml
<configuration>
<property name="LOG_HOME" value="../logs"/>
3、修改brocker.conf
brokerClusterName = MyCluster
brokerName = broker-zjk
brokerId = 0
deleteWhen = 04 ##代表每天凌晨4点清除过期消息
fileReservedTime = 48 ##代表消息持久化存储时间(单位小时)
brokerRole = ASYNC_MASTER ##异步时客户端发送消息到master节点就立刻返回成功,同步时客户端发送消息到master后master需要将消息同步到slave后才会返回成功。
flushDiskType = ASYNC_FLUSH ##异步先写到内存,通过一个线程写入磁盘。同步直接写入磁盘。异步可能会在broker挂掉时丢失内存里的数据。
namesrvAddr=192.168.2.24:9876 ##namesrv地址
brokerIP1=192.168.2.24
autoCreateTopicEnable=true ##默认为true,如关闭,则需要每次管理员在web中创建,可有效规范topic名称
storePathRootDir=/usr/local/rocketMQ/data ##数据存储路径
4、修改内存大小。进入bin目录下,有两个启动文件需要关注
runbroker.sh
根据服务器资源以及业务场景,修改为合适的参数
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m"
runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms512 -Xmx512 -Xmn256 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
5、启动,启动成功的日志在broker.log,namesrv.log 中都可以看到
##启动nameserver
nohup ./mqnamesrv >>/dev/null 2>&1&
##启动broker
nohup ./mqbroker -c ../conf/broker.conf >>/dev/null 2>&1&
##关闭broker
./mqshutdown broker
##关闭namesrv
./mqshutdown namesrv
6、rocketMQ 自带了可视化工具,rocketmq-console,此处我们不再搭建,直接用docker启动
[root@project-deve rocketMQ]# docker search rocketmq-console
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/styletang/rocketmq-console-ng rocketmq-console-ng
7、pull镜像,并创建启动容器(需指定namesrv地址)
[root@project-deve rocketMQ]# docker pull docker.io/styletang/rocketmq-console-ng
[root@project-deve rocketMQ]# docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.2.24:9876
8、通过可视化界面,可以看到当前MQ消费情况