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