基於 Docker 安裝 RocketMQ


docker-compose.yml
注意:啟動 RocketMQ Server + Broker + Console 至少需要 2G 內存

version: '3.5'
services:
rmqnamesrv:
image: foxiswho/rocketmq:server
container_name: rmqnamesrv
ports:
- 9876:9876
volumes:
- ./data/logs:/opt/logs
- ./data/store:/opt/store
networks:
rmq:
aliases:
- rmqnamesrv

rmqbroker:
image: foxiswho/rocketmq:broker
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
volumes:
- ./data/logs:/opt/logs
- ./data/store:/opt/store
- ./data/brokerconf/broker.conf:/etc/rocketmq/broker.conf
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
command: mqbroker -c /etc/rocketmq/broker.conf
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqbroker

rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rmqconsole
ports:
- 8080:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqconsole

networks:
rmq:
name: rmq
driver: bridge

broker.conf

RocketMQ Broker 需要一個配置文件,按照上面的 Compose 配置,我們需要在 ./data/brokerconf/ 目錄下創建一個名為 broker.conf 的配置文件,內容如下:

Licensed to the Apache Software Foundation (ASF) under one or more

contributor license agreements. See the NOTICE file distributed with

this work for additional information regarding copyright ownership.

The ASF licenses this file to You under the Apache License, Version 2.0

(the "License"); you may not use this file except in compliance with

the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

所屬集群名字

brokerClusterName=DefaultCluster

broker 名字,注意此處不同的配置文件填寫的不一樣,如果在 broker-a.properties 使用: broker-a,

在 broker-b.properties 使用: broker-b

brokerName=broker-a

0 表示 Master,> 0 表示 Slave

brokerId=0

nameServer地址,分號分割

namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

啟動IP,如果 docker 報 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:10909> failed

解決方式1 加上一句 producer.setVipChannelEnabled(false);,解決方式2 brokerIP1 設置宿主機IP,不要使用docker 內部IP

brokerIP1=192.168.0.253

在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數

defaultTopicQueueNums=4

是否允許 Broker 自動創建 Topic,建議線下開啟,線上關閉 !!!這里仔細看是 false,false,false

autoCreateTopicEnable=true

是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉

autoCreateSubscriptionGroup=true

Broker 對外服務的監聽端口

listenPort=10911

刪除文件時間點,默認凌晨4點

deleteWhen=04

文件保留時間,默認48小時

fileReservedTime=120

commitLog 每個文件的大小默認1G

mapedFileSizeCommitLog=1073741824

ConsumeQueue 每個文件默認存 30W 條,根據業務情況調整

mapedFileSizeConsumeQueue=300000

destroyMapedFileIntervalForcibly=120000

redeleteHangedFileInterval=120000

檢測物理文件磁盤空間

diskMaxUsedSpaceRatio=88

存儲路徑

storePathRootDir=/home/ztztdata/rocketmq-all-4.1.0-incubating/store

commitLog 存儲路徑

storePathCommitLog=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/commitlog

消費隊列存儲

storePathConsumeQueue=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/consumequeue

消息索引存儲路徑

storePathIndex=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/index

checkpoint 文件存儲路徑

storeCheckpoint=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/checkpoint

abort 文件存儲路徑

abortFile=/home/ztztdata/rocketmq-all-4.1.0-incubating/store/abort

限制的消息大小

maxMessageSize=65536

flushCommitLogLeastPages=4

flushConsumeQueueLeastPages=2

flushCommitLogThoroughInterval=10000

flushConsumeQueueThoroughInterval=60000

Broker 的角色

- ASYNC_MASTER 異步復制Master

- SYNC_MASTER 同步雙寫Master

- SLAVE

brokerRole=ASYNC_MASTER

刷盤方式

- ASYNC_FLUSH 異步刷盤

- SYNC_FLUSH 同步刷盤

flushDiskType=ASYNC_FLUSH

發消息線程池數量

sendMessageThreadPoolNums=128

拉消息線程池數量

pullMessageThreadPoolNums=128

RocketMQ 控制台

訪問 http://rmqIP:8080 登入控制台


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM