docker-compose安装RocketMQ集群

docker-compose安装RocketMQ集群

知识索引

  • RocketMQ集群说明
  • 基于docker-compose安装namesrv、rocketmq-console、broker
  • rocketmq-console演示

1 集群说明

我们安装RocketMQ集群,这里为了演示效果,就安装2Master结构,为了不受单机影响,先停掉单机版,再安装集群版。

停止单机版命令:

docker stop rmqadmin rmqbroker rmqnamesrv

安装集群版,需要为每个broker创建存储配置文件、日志、数据的目录,我们创建目录如下:

mkdir -p \
/usr/local/server/rocketmq_cluster/data_namesrv/namesrv/logs \
/usr/local/server/rocketmq_cluster/data_namesrv/namesrv/store \
/usr/local/server/rocketmq_cluster/data1/broker/logs \
/usr/local/server/rocketmq_cluster/data1/broker/store \
/usr/local/server/rocketmq_cluster/conf1 \
/usr/local/server/rocketmq_cluster/data2/broker/logs \
/usr/local/server/rocketmq_cluster/data2/broker/store \
/usr/local/server/rocketmq_cluster/conf2

2 集群配置

集群结构为2Master,需要为每个节点配置一个broker.conf配置文件。

/usr/local/server/rocketmq_cluster/conf1创建broker.conf配置文件:

# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = ItmentuCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH

/usr/local/server/rocketmq_cluster/conf2创建broker.conf配置文件:

# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = ItmentuCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-b
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH

3 RocketMQ集群搭建

集群安装我们采用docker-compose方式安装,所以首先要确认你的系统已经安装了docker-compose

关于docker-compose的安装,大家可以参考http://edu.secby.cn/node/view/1472115371169964034#a6124af3b6bcd5072900214f860651c0,这里不做演示了。

使用docker-compose就可以避免一个一个组件单独安装,可以一次性把namesrvbrokerrocketmq-console一次完成安装,只不过需要写docker-compose脚本。

创建rocketmq.yml,配置文件如下:

version: '3.8'
services:
  #Service for nameserver
  namesrv:
    image: rocketmqinc/rocketmq:4.4.0
    container_name: cluster_rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - /usr/local/server/rocketmq_cluster/data_namesrv/namesrv/logs:/root/logs
      - /usr/local/server/rocketmq/data_namesrv/namesrv/store:/root/store
    command: sh mqnamesrv

  #Service for another broker -- broker1
  broker1:
    image: rocketmqinc/rocketmq:4.4.0
    container_name: cluster_rmqbroker1
    links:
      - namesrv
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    environment:
      - NAMESRV_ADDR=namesrv:9876
    volumes:
      - /usr/local/server/rocketmq_cluster/data1/broker/logs:/root/logs
      - /usr/local/server/rocketmq_cluster/data1/broker/store:/root/store
      - /usr/local/server/rocketmq_cluster/conf1/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
  #Service for another broker -- broker2
  broker2:
    image: rocketmqinc/rocketmq:4.4.0
    container_name: cluster_rmqbroker2
    links:
      - namesrv
    ports:
      - 10929:10909
      - 10931:10911
      - 10932:10912
    environment:
      - NAMESRV_ADDR=namesrv:9876
    volumes:
      - /usr/local/server/rocketmq_cluster/data2/broker/logs:/root/logs
      - /usr/local/server/rocketmq_cluster/data2/broker/store:/root/store
      - /usr/local/server/rocketmq_cluster/conf2/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

  rmqconsole:
    image: pangliang/rocketmq-console-ng
    container_name: rmqconsole
    ports:
      - 7001:7001
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=192.168.211.130:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Dserver.port=7001"

然后执行docker-compose -f rocketmq.yml up -d就可以安装RocketMQ集群了,安装效果如下:

image-20211226035027700

4 控制台安装

rocketmq-console安装其实在上面我们已经完成了,安装配置如下:

image-20211226035119749

因为在安装broker集群已经安装了rocketmq-console,所有我们这里不需要再安装了,直接访问http://192.168.211.130:7001即可,效果如下:

image-20211226033811856

我们可以看到已经实现了2台服务集群。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值