Akiraka Akiraka
  • 首页
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • 大数据
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • 微服务
    • Kubernetes
    • Helm
  • Other
  • Quark
  • 首页
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • 大数据
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • 微服务
    • Kubernetes
    • Helm
  • Other
  • Quark
首页 › Linux › Docker › RocketMQ 集群容器编排单机主从

RocketMQ 集群容器编排单机主从

Akiraka7月前

文章目录

  • 一、主机信息
  • 二、创建 RocketMQ 编排文件
    • 2.1、创建相关目录
    • 2.2、创建容器网络
    • 2.3、创建 rocketmq 编排文件
  • 三、创建 Rocketmq 配置文件
    • 3.1、配置说明
    • 3.2、创建 master-broker 配置文件
    • 3.3、创建 slave-broker.conf 配置文件
  • 四、启动 RocketMQ 集群
    • 4.1、启动 RocketMQ 集群
    • 4.2、通过 WEB RocketMQ 集群

一、主机信息

  • 单机编排
  • 如需要多宿主机做集群,只需要分离配置文件
主机 IP地址 备注
rocketmq 192.168.8.8 主备

二、创建 RocketMQ 编排文件

2.1、创建相关目录

#   创建 rocketmq 文件夹,放置编排文件
mkdir -p /data/compose/rocketmq
#   创建 rocketmq 文件夹,放置配置文件
mkdir -p /data/rocketmq/conf

2.2、创建容器网络

docker network create aka-network

2.3、创建 rocketmq 编排文件

cat <<'EOF'> /data/compose/rocketmq/docker-compose.yaml
version: '2'
services:
  namesrv:
    image: foxiswho/rocketmq:4.7.0
    mem_limit: 1024m
    container_name: namesrv
    command: ["sh","mqnamesrv"]
    environment:
      JAVA_OPT_EXT: "-Duser.home=/opt -Xms512M -Xmx512M -Xmn128m"
    volumes:
      - /data/rocketmq/namesrv/logs:/opt/logs
      - /data/rocketmq/namesrv/store:/opt/store
    ports:
      - 9876:9876
  rocketmq-master:
    user: root
    image: foxiswho/rocketmq:4.7.0
    mem_limit: 3072m
    container_name: rocketmq-master
    command: ["sh","mqbroker","-c","/etc/rocketmq/broker.conf","-n","namesrv:9876","autoCreateTopicEnable=true"]
    environment:
      JAVA_OPT_EXT: "-Duser.home=/opt -Xms512M -Xmx2048M -Xmn128m"
    volumes:
      - /data/rocketmq/master/logs:/opt/logs
      - /data/rocketmq/master/store:/opt/store
      - /data/rocketmq/conf/master-broker.conf:/etc/rocketmq/broker.conf
    ports:
      - 10909:10909
      - 10911:10911
    depends_on:
      - namesrv
  rocketmq-slave:
    user: root
    image: foxiswho/rocketmq:4.7.0
    mem_limit: 3072m
    container_name: rocketmq-slave
    command: ["sh","mqbroker","-c","/etc/rocketmq/broker.conf","-n","namesrv:9876","autoCreateTopicEnable=true"]
    environment:
      JAVA_OPT_EXT: "-Duser.home=/opt -Xms512M -Xmx2048M -Xmn128m"
    volumes:
      - /data/rocketmq/slave/logs:/opt/logs
      - /data/rocketmq/slave/store:/opt/store
      - /data/rocketmq/conf/slave-broker.conf:/etc/rocketmq/broker.conf
    ports:
      - 10910:10909
      - 10912:10912
    depends_on:
      - namesrv
  rmqconsole:
    image: styletang/rocketmq-console-ng
    mem_limit: 1024m
    container_name: rmqconsole
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    ports:
      - 8080:8080
    depends_on:
      - namesrv
networks:
  default:
    external:
      name:  aka-network
EOF

三、创建 Rocketmq 配置文件

3.1、配置说明

  • 在容器中同容器网络时,服务访问rockermq broker是没有问题。
  • 宿主机或其他主机访问 rocketmq 需要设置 brokerIP1 为宿主机 ip 并为其开放端口,端口不能冲突。

3.2、创建 master-broker 配置文件

cat <<'EOF'> /data/rocketmq/conf/master-broker.conf
#所属集群名字
brokerClusterName=DefaultCluster
#broker名字,注意此处不同的配置文件填写的不一样,如果在broker-a.properties使用:broker-a,
#在broker-b.properties使用:broker-b
brokerName=broker-a
#0 表示Master,>0 表示Slave
brokerId=0
#在发送消息时,自动创建服务器不存在的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
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#限制的消息大小
maxMessageSize=65536
#Broker 的角色,ASYNC_MASTER 异步复制Master,SYNC_MASTER 同步双写Master,SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式:ASYNC_FLUSH 异步刷盘,SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
# 主机ip地址
brokerIP1= 192.168.8.8
EOF

3.3、创建 slave-broker.conf 配置文件

cat <<'EOF'> /data/rocketmq/conf/slave-broker.conf
#所属集群名字
brokerClusterName=DefaultCluster
#broker名字,注意此处不同的配置文件填写的不一样,如果在broker-a.properties使用:broker-a,
#在broker-b.properties使用:broker-b
brokerName=broker-a
#0 表示Master,>0 表示Slave
brokerId=1
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 !!!这里仔细看是false,false,false
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10912
#删除文件时间点,默认凌晨4点
deleteWhen=04
#文件保留时间,默认48小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#限制的消息大小
maxMessageSize=65536
#Broker 的角色,ASYNC_MASTER 异步复制Master,SYNC_MASTER 同步双写Master,SLAVE
brokerRole=SLAVE
#刷盘方式:ASYNC_FLUSH 异步刷盘,SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
# 主机ip地址
brokerIP1=192.168.8.8
EOF

四、启动 RocketMQ 集群

4.1、启动 RocketMQ 集群

  • 开放端口 8080 用于管理界面
#   进入 RocketMQ 容器编排目录
cd /data/compose/rocketmq
#   启动 docker-compose
docker-compose up -d

4.2、通过 WEB RocketMQ 集群

  • 开放端口 8080 用于管理界面
  • 访问方式,ip:8080

RocketMQ 集群容器编排单机主从-Akiraka

#docker#rocketmq
0
分享
Akiraka 站长
文章 121评论 10
相关文章
  • Docker 修改默认存储路径
  • RocketMQ 集群容器多机编排主主
  • Docker-Compose 网络配置
  • 密码保护:生成 GitLab EE 许可证
  • GitLab 10.4.0 迁移到 Docker 版本 GitLab 12.10
Akiraka
站长
本人擅长 Ai、Au、Fl、Ae、Pr、Ps 等软件的安装与卸载,精通 CSS、JavaScript、PHP、Python、Shell、Go 等单词的拼写,熟悉 Windows、Linux、Mac、Android、IOS 等系统的开关机!
121文章
10评论
47获赞
想找什么搜一下
文章聚合
jdk Hadoop Spark Hive Zookeeper环境变量
1年前
Ubuntu 18.04 服务器版本
1年前
Docker 使用官方镜像构建 nginx 容器
1年前
Docker-Compose 网络配置
6月前
php 容器编排
1年前
微信小程序
微信小程序
标签云
brew cdh centos cmd docker docker compose elasticsearch elk filebase filebeat gitlab grafana hadoop helm hive hue jdk jenkins k8s kibana kubernetes liniux linux logstash mac mikrotik mydumper mysql nfs nginx openssl oss php pip pyspark python RabbitMQ redis rocketmq shell Spark ubuntu windows ZooKeeper 容器编排
Copyright © 2019-2021 Akiraka. Designed by nicetheme. 沪18036911号