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

RocketMQ单机搭建_docker

根据服务器资源以及业务场景,修改为合适的参数

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m"

 runserver.sh

RocketMQ单机搭建_xml_02

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消费情况

RocketMQ单机搭建_rocketMQ_03