在win10中使用docker创建rocketmq单机测试环境
拉取镜像
docker pull rocketmqinc/rocketmq
使用 powershell 命令行工具 创建挂载目录
mkdir namesrv broker
在broker中创建conf目录存放配置文件
cd broker
mkdir conf
在broker/conf目录中创建配置文件
配置文件 broker.conf
brokerClusterName = rocketmq-danjiban
brokerName = broker-server
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
# Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRote=ASYNC_MASTER
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
#这个IP的设置很重要,一定要设置成你的机器可以ping通的ip,要不然程序连上namesrv,但是namesrv会找不到Broker,报错的会
brokerIP1=192.168.1.114
#限制的消息大小
maxMessageSize=65536
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=50000000
#并发send线程数,多线程来发送消息可能会出现broker busy
sendMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=8
highSpeedMode=false
commercialBaseCount=1
maxErrorRateOfBloomFilter=20
accessMessageInMemoryMaxRatio=40
#无读写客户端存活时间
clientChannelMaxIdleTimeSeconds=120
flushDelayOffsetInterval=10000
serverSocketRcvBufSize=131072
#单次 Pull 消息(内存)传输的 最大字节数
maxTransferBytesOnMessageInMemory=262144
clientManageThreadPoolNums=32
serverChannelMaxIdleTimeSeconds=120
serverCallbackExecutorThreads=0
enablePropertyFilter=false
transientStorePoolSize=5
enableConsumeQueueExt=false
#rocketmq server config
serverPooledByteBufAllocatorEnable=true
serverSocketRcvBufSize=131072
#rocketmq client config
在namesrv目录执行命令启动namesrv服务
docker run --privileged=true -p 9876:9876 `
--name rocketmq-namesrv-server -v $PWD/logs:/root/logs `
-e "MAX_POSSIBLE_HEAP=100000000" -e "JAVA_OPTS=-Duser.home=/opt" `
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" `
-d rocketmqinc/rocketmq sh mqnamesrv
在broker目录执行命令启动broker
docker run --privileged=true -p 10909:10909 -p 10911:10911 -p 10912:10912 `
--name rocketmq-broker-server -v $PWD/logs:/root/logs -v $PWD/store:/root/store `
-v D:\docker-db\rocketmq\broker\conf\broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf `
-e "NAMESRV_ADDR=192.168.1.114:9876" -e "MAX_POSSIBLE_HEAP=200000000" `
-e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms256m -Xmx256m" `
-d rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
解释: $PWD 在挂载目录时时好使的 但是挂载文件时就会出问题,故挂载文件时使用了全路径.
`(esc按键下面) 这个符号和linux里的 \ 作用一致
可视化监控控制台: 拉取镜像
docker pull styletang/rocketmq-console-ng
在namesrv和broker的同级创建目录
mkdir console
启动服务
docker run -d -p 8082:8080 --restart=always --privileged=true `
--name rocketmq-console-server -v $PWD/console/data:/tmp `
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.1.114:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" `
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Duser.home=/opt" styletang/rocketmq-console-ng