RocketMQ系列:docker-compose搭建rocketmq的集群模式

接上文:docker搭建rocketmq单机环境

本文介绍如何使用docker-compose搭建rocketmq的集群环境

1. 安装docker-compose

1.1 下载docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

1.2 增加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

1.3 生成软链接

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

1.4 验证docker-compose是否安装成功

docker-compose version

2. 启动rocketmq

2.1 docker-compose.yml

docker-compose.yml在rocketmq-docker/stages/4.7.1/templates/docker-compose目录下面

version: '2'
services:
  #Service for nameserver
  namesrv:
    image: apacherocketmq/rocketmq:4.7.1
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - ./data/namesrv/logs:/home/rocketmq/logs
    command: sh mqnamesrv

  #Service for broker
  broker:
    image: apacherocketmq/rocketmq:4.7.1
    container_name: rmqbroker
    links:
      - namesrv
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    environment:
      - NAMESRV_ADDR=namesrv:9876
    volumes:
      - ./data/broker/logs:/home/rocketmq/logs
      - ./data/broker/store:/home/rocketmq/store
      - ./data/broker/conf/broker.conf:/opt/rocketmq-4.7.1/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq-4.7.1/conf/broker.conf
 #Service for another broker -- broker1
  broker1:
    image: apacherocketmq/rocketmq:4.7.1
    container_name: rmqbroker-b
    links:
      - namesrv
    ports:
      - 10929:10909
      - 10931:10911
      - 10932:10912
    environment:
      - NAMESRV_ADDR=namesrv:9876
    volumes:
      - ./data1/broker/logs:/home/rocketmq/logs
      - ./data1/broker/store:/home/rocketmq/store
      - ./data1/broker/conf/broker.conf:/opt/rocketmq-4.7.1/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq-4.7.1/conf/broker.conf

可以看到docker-compose启动了两个broker分片作为一个broker集群,连接到一个nameserver,我们看下broker-a和broker-b的配置

broker1:/data1/broker/conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-b
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
broker:/data/broker/conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH

2.2 docker-compose启动rocketmq:4.7.1

#进入对应目录
cd rocketmq-docker/stages/4.7.1/template

#执行docker-compose脚本(如果build的rocketmq是centos,则直接执行成功)
sh play-docker-compose.sh

注意:如果你build的是rocketmq的alpine版本,这里可能会失败。

2.2 解决方法

tag一个新的rocketmq的镜像,执行如下:

docker tag apacherocketmq/rocketmq:4.7.1-alpine apacherocketmq/rocketmq:4.7.1

2.3 重新执行

sh play-docker-compose.sh

2.4 docker-compose相关命令

2.4.1 查看docker-compose启动的容器

cd rocketmq-docker/stages/4.7.1/templates/docker-compose
docker-compose ps

2.4.2 停止docker-compose启动的容器

cd rocketmq-docker/stages/4.7.1/templates/docker-compose
docker-compose stop

2.4.3 启动docker-compose定义的容器

cd rocketmq-docker/stages/4.7.1/templates/docker-compose
docker-compose up

2.4.4 后台启动docker-compose定义的容器

cd rocketmq-docker/stages/4.7.1/templates/docker-compose
#-d表示后台启动
docker-compose up -d

2.4.5 强制删除docker-compose启动的容器

cd rocketmq-docker/stages/4.7.1/templates/docker-compose
docker-compose rm -fs

3. 启动控制台

启动

docker run --net docker-compose_default -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8090:8080 --name rmqconsole -t styletang/rocketmq-console-ng

查看

浏览器打开:http://{你机器的ip}:8090

如图可以看到,docker-compose默认启动了两个broker的集群(master模式)

  

传送门:2021最新测试资料与大厂招聘合集

博主:测试生财(一个不为996而996的测开码农)

座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。

内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

微信公众号:测试生财(定期分享独家内容和资源)

zsh: command not found: docker-compose 是在使用zsh终端时遇到的错误提示,表示无法找到docker-compose命令。docker-composeDocker官方提供的一个用于定义和运行多个容器的工具,它可以通过一个配置文件来管理多个容器的启动、停止和删除等操作。 要解决这个问题,你可以按照以下步骤进行操作: 1. 确认是否已经安装了Dockerdocker-compose。你可以在终端中运行以下命令来检查它们是否已经安装: ``` docker --version docker-compose --version ``` 2. 如果没有安装Dockerdocker-compose,你需要先安装它们。你可以参考Docker官方文档来进行安装,具体步骤可以根据你的操作系统来选择。 3. 如果已经安装了Dockerdocker-compose,但仍然出现该错误提示,可能是因为docker-compose命令没有被正确添加到系统的环境变量中。你可以尝试手动添加docker-compose的路径到环境变量中,具体步骤如下: - 打开终端,并编辑你的zsh配置文件(一般是~/.zshrc)。 - 在文件中添加以下内容,将路径替换为你的docker-compose所在路径: ``` export PATH=$PATH:/path/to/docker-compose ``` - 保存文件并退出。 - 在终端中运行以下命令,使配置文件生效: ``` source ~/.zshrc ``` 4. 重新打开一个新的终端窗口,然后尝试运行docker-compose命令,看是否问题已经解决。 希望以上步骤能够帮助你解决问题。如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公众号-测试生财

点赞和关注比打赏更重要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值