rocketmq部署

总的部署规则参考:

https://rocketmq.apache.org/zh/docs/deploymentOperations/01deploy

使用单台机器多个docker模拟多台机器,docker的编译参考

https://github.com/apache/rocketmq-docker

目前采用 多节点(集群)多副本模式-异步复制
在一台机器上启动2个Master和2个Slave来模拟集群的情况

启动nameserver

### 首先启动Name Server  
$ nohup sh mqnamesrv &  

### 验证Name Server 是否启动成功  
$ tail -f ~/logs/rocketmqlogs/namesrv.log  
The Name Server boot success...

修改编译脚本(在8G的单机上模拟一个集群,所以需要设置最大占用,不然无法启动),修改broker的运行大小即可

#/ nano image-build/scripts/run-broker-customize.sh

system_memory_in_mb="2048"
system_cpu_cores="2"

编译docker

git clone https://ghproxy.com/https://github.com/apache/rocketmq-docker.git

cd rocketmq-docker/image-build/

sh build-image.sh 5.1.0 alphine
sh build-image.sh 5.1.0 

编译创建docker配置文件

其实是把之前的配置文件复制一份出来

注意:容器内部用的rocketmq用户,因此文件映射到外部时 .docker的宿主机目录权限要改成777

docker run -d -p 10911:10911 -p 10909:10909 -v `pwd`/data/broker/logs:/root/logs -v `pwd`/data/broker/store:/root/store -v `pwd`/data/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.5.0/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" apache/rocketmq:4.5.0 sh mqbroker -c /home/rocketmq/rocketmq-4.5.0/conf/broker.conf

配置好相关yaml文件

version: "3.4"

services:
  namesrv:
    image: apache/rocketmq:5.1.0-alpine
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - ./data/namesrv/logs:/home/rocketmq/logs
    command: sh mqnamesrv
  broker-a:
    image: apache/rocketmq:5.1.0-alpine
    container_name: rmqbroker-a
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - ./data/broker-a/logs:/home/rocketmq/logs
      - ./data/broker-a/store:/home/rocketmq/store
      - ./data/broker-a/conf/broker.conf:/home/rocketmq/rocketmq-5.1.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf
    depends_on:
      - namesrv
  broker-a-s:
    image: apache/rocketmq:5.1.0-alpine
    container_name: rmqbroker-a-s
    ports:
      - 10929:10909
      - 10931:10911
      - 10932:10912
    volumes:
      - ./data/broker-a-s/logs:/home/rocketmq/logs
      - ./data/broker-a-s/store:/home/rocketmq/store
      - ./data/broker-a-s/conf/broker.conf:/home/rocketmq/rocketmq-5.1.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf
    depends_on:
      - namesrv
  broker-b:
    image: apache/rocketmq:5.1.0-alpine
    container_name: rmqbroker-b
    ports:
      - 11909:10909
      - 11911:10911
      - 11912:10912
    volumes:
      - ./data/broker-b/logs:/home/rocketmq/logs
      - ./data/broker-b/store:/home/rocketmq/store
      - ./data/broker-b/conf/broker.conf:/home/rocketmq/rocketmq-5.1.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf
    depends_on:
      - namesrv
  broker-b-s:
    image: apache/rocketmq:5.1.0-alpine
    container_name: rmqbroker-b-s
    ports:
      - 11929:10909
      - 11931:10911
      - 11932:10912
    volumes:
      - ./data/broker-b-s/logs:/home/rocketmq/logs
      - ./data/broker-b-s/store:/home/rocketmq/store
      - ./data/broker-b-s/conf/broker.conf:/home/rocketmq/rocketmq-5.1.0/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf
    depends_on:
      - namesrv
上一篇
下一篇