RocketMQ单机搭建

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"/>
    <appender name="DefaultAppender"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${brokerLogDir}/broker_default.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${LOG_HOME}/otherdays/${brokerLogDir}/broker_default.%i.log.gz</fileNamePattern>  

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                             39                   
docker.io   docker.io/apacherocketmq/rocketmq-console     This repo has moved to rocketmq-dashboard,...   7                    
docker.io   docker.io/pangliang/rocketmq-console-ng                                                       2                         

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 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng

8、通过可视化界面,可以看到当前MQ消费情况

 

 

 

 

 

 

posted @ 2022-09-09 14:55  蓝色土耳其  阅读(425)  评论(0编辑  收藏  举报