栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

docker-compose安装RocketMQ集群

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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就可以避免一个一个组件单独安装,可以一次性把namesrv、broker、rocketmq-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集群了,安装效果如下:

4 控制台安装

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

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884251.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号