一、单机部署

1、拉取镜像:foxiswho/rocketmq:server  cabel/rocketmq:broker styletang/rocketmq-console-ng

2、创建目录:data/{brokerconf,logs,store}

3、创建data/brokerconf/broker.conf

# 所属集群名字
brokerClusterName=Duojia # broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a,
# 在 broker-b.properties 使用: broker-b
brokerName=broker-a # 表示 Master,> 表示 Slave
brokerId= # nameServer地址,分号分割
namesrvAddr=192.168.100.55:;192.168.100.56: # 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:> failed
# 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP
brokerIP1=192.168.100.55
brokerIP2=192.168.100.56 # 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums= # 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false
autoCreateTopicEnable=false # 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false # Broker 对外服务的监听端口
listenPort= # 删除文件时间点,默认凌晨4点
deleteWhen= # 文件保留时间,默认48小时
fileReservedTime= # commitLog 每个文件的大小默认1G
mapedFileSizeCommitLog= # ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue= # destroyMapedFileIntervalForcibly=
# redeleteHangedFileInterval=
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
# 存储路径
storePathRootDir=/opt/rkmq/store
# commitLog 存储路径
storePathCommitLog=/opt/rkmq/commitlog
# 消费队列存储
storePathConsumeQueue=/opt/rkmq/consumequeue
# 消息索引存储路径
storePathIndex=/opt/rkmq/index
# checkpoint 文件存储路径
storeCheckpoint=/opt/rkmq/checkpoint
# abort 文件存储路径
abortFile=/opt/rkmq/abort
# 限制的消息大小
maxMessageSize= # flushCommitLogLeastPages=
# flushConsumeQueueLeastPages=
# flushCommitLogThoroughInterval=
# flushConsumeQueueThoroughInterval= # Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole=ASYNC_MASTER # 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH # 发消息线程池数量
# sendMessageThreadPoolNums=
# 拉消息线程池数量
# pullMessageThreadPoolNums=

PS:以上配置文件的namesrvAddr选项修改成一个,集群配置多个

4、创建docker-compose.yaml文件

version: '3.0'
services:
rmqnamesrv:
image: foxiswho/rocketmq:server
container_name: rmqnamesrv
ports:
- :
volumes:
- ./data/logs:/opt/logs
- ./data/store:/opt/store rmqbroker:
image: cabel/rocketmq:broker
container_name: rmqbroker
ports:
- :
- :
volumes:
- ./data/logs:/opt/logs
- ./data/store:/opt/store
- ./data/brokerconf/broker.conf:/etc/rocketmq/broker.conf
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
command: mqbroker -c /etc/rocketmq/broker.conf
depends_on:
- rmqnamesrv rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rmqconsole
ports:
- :
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
depends_on:
- rmqnamesrv

5、docker-compose up -d启动即可

6、然后访问18080端口即可进入web页面

二、集群部署

集群部署与单机部署不同之处是在broker.conf配置文件的不同:

master-1的broker.conf

# 所属集群名字
brokerClusterName=Duojia # broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a,
# 在 broker-b.properties 使用: broker-b
brokerName=broker-a # 表示 Master,> 表示 Slave
brokerId= # nameServer地址,分号分割
namesrvAddr=192.168.100.55:;192.168.100.56: # 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:> failed
# 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP
brokerIP1=192.168.100.55 # 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums= # 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false
autoCreateTopicEnable=false # 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false # Broker 对外服务的监听端口
listenPort= # 删除文件时间点,默认凌晨4点
deleteWhen= # 文件保留时间,默认48小时
fileReservedTime= # commitLog 每个文件的大小默认1G
mapedFileSizeCommitLog= # ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue= # destroyMapedFileIntervalForcibly=
# redeleteHangedFileInterval=
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
# 存储路径
storePathRootDir=/opt/rkmq/store
# commitLog 存储路径
storePathCommitLog=/opt/rkmq/commitlog
# 消费队列存储
storePathConsumeQueue=/opt/rkmq/consumequeue
# 消息索引存储路径
storePathIndex=/opt/rkmq/index
# checkpoint 文件存储路径
storeCheckpoint=/opt/rkmq/checkpoint
# abort 文件存储路径
abortFile=/opt/rkmq/abort
# 限制的消息大小
maxMessageSize= # flushCommitLogLeastPages=
# flushConsumeQueueLeastPages=
# flushCommitLogThoroughInterval=
# flushConsumeQueueThoroughInterval= # Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole=ASYNC_MASTER # 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH # 发消息线程池数量
# sendMessageThreadPoolNums=
# 拉消息线程池数量
# pullMessageThreadPoolNums=

slave-1的broker.conf

# 所属集群名字
brokerClusterName=Duojia # broker 名字,注意此处不同的配置文件填写的不一样,如果在 broker-a.properties 使用: broker-a,
# 在 broker-b.properties 使用: broker-b
brokerName=broker-b # 表示 Master,> 表示 Slave
brokerId= # nameServer地址,分号分割
namesrvAddr=192.168.100.55:;192.168.100.56: # 启动IP,如果 docker 报 com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <192.168.0.120:> failed
# 解决方式1 加上一句 producer.setVipChannelEnabled(false);,解决方式2 brokerIP1 设置宿主机IP,不要使用docker 内部IP
brokerIP1=192.168.100.56 # 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums= # 是否允许 Broker 自动创建 Topic,建议线下开启,线上关闭 !!!这里仔细看是 false,false,false
autoCreateTopicEnable=false # 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false # Broker 对外服务的监听端口
listenPort= # 删除文件时间点,默认凌晨4点
deleteWhen= # 文件保留时间,默认48小时
fileReservedTime= # commitLog 每个文件的大小默认1G
mapedFileSizeCommitLog= # ConsumeQueue 每个文件默认存 30W 条,根据业务情况调整
mapedFileSizeConsumeQueue= # destroyMapedFileIntervalForcibly=
# redeleteHangedFileInterval=
# 检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
# 存储路径
storePathRootDir=/opt/rkmq/store
# commitLog 存储路径
storePathCommitLog=/opt/rkmq/commitlog
# 消费队列存储
storePathConsumeQueue=/opt/rkmq/consumequeue
# 消息索引存储路径
storePathIndex=/opt/rkmq/index
# checkpoint 文件存储路径
storeCheckpoint=/opt/rkmq/checkpoint
# abort 文件存储路径
abortFile=/opt/rkmq/abort
# 限制的消息大小
maxMessageSize= # flushCommitLogLeastPages=
# flushConsumeQueueLeastPages=
# flushCommitLogThoroughInterval=
# flushConsumeQueueThoroughInterval= # Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole=SLAVE # 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH # 发消息线程池数量
# sendMessageThreadPoolNums=
# 拉消息线程池数量
# pullMessageThreadPoolNums=

其中的compose文件,rmqconsole服务仅配置一个即可。

docker安装rocketmq的更多相关文章

  1. Docker安装rocketmq踩坑指南

    Docker 网络 Docker容器运行的时候有host.bridge.none三种网络可供配置. 默认是bridge,即桥接网络,以桥接模式连接到宿主机:host是宿主网络,即与宿主机共用网络:no ...

  2. 基于 Docker 安装 RocketMQ

    docker-compose.yml version: '3.5' services: rmqnamesrv: image: foxiswho/rocketmq:server container_na ...

  3. Docker 版rocketmq部署

    rocketmq 部署启动指南-Docker 版   最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑. 准备工作# ...

  4. RabbitMQ从概念到使用、从Docker安装到RabbitMQ整合Springboot【1.5w字保姆级教学】

    @ 目录 一.前言 二.RabbitMQ作用 1. 异步处理 2. 应用解耦 3. 流量控制 三.RabbitMQ概念 1. RabbitMQ简介 2. 核心概念 四.JMS与AMQP比较 五.Rab ...

  5. Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

  6. Docker 部署 RocketMQ 双主双从模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/96/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

  7. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  8. docker安装

    系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r   //查看内核版本yum -y update //更新系统更新到最新 #安装d ...

  9. 2. Docker - 安装

    一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...

随机推荐

  1. 添加SSH keys到github帐号

    使用git clone命令从github上同步github上的代码库时,如果使用SSH链接(如我自己的esesgrid项目:git@github.com:hmilycc/esesgrid.git),而 ...

  2. 20.采集项目流程篇之清洗数据绑定到hive表中

    先启动hive 在mydb2这个数据库中创建表: create external table mydb2.access(ip string,day string,url string,upflow s ...

  3. 13.sqoop的安装

      上传sqoop压缩包,并解压 给sqoop一个软链接 给sqoop配置环境变量 #sqoop export SQOOP_HOME=/opt/modules/sqoop export PATH=$P ...

  4. [转帖]RedHat 如何更改网卡名 从ens192 改为eth0的问题

    RedHat 如何更改网卡名 从ens192 改为eth0的问题 2017年03月27日 17:50:47 the_conquer_zzy 阅读数 2416   版权声明:本文为博主原创文章,遵循CC ...

  5. docker运行报错docker0: iptables: No chain/target/match by that name.

    转自:https://blog.csdn.net/wohaqiyi/article/details/84450562 docker运行报错docker0: iptables: No chain/tar ...

  6. L1-064 估值一亿的AI核心代码 (20 分)

    L1-064 估值一亿的AI核心代码 (20 分)   以上图片来自新浪微博. 本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是: 无论用户说什么,首先把对方说的话在一行中原样打印出来: ...

  7. Java回调实现异步 (转)

    出处: Java回调实现异步 在正常的业务中使用同步线程,如果服务器每处理一个请求,就创建一个线程的话,会对服务器的资源造成浪费.因为这些线程可能会浪费时间在等待网络传输,等待数据库连接等其他事情上, ...

  8. vs2017 不能加载.vdproj

    需要添加Microsoft Visual Studio Installer Projects扩展  下载地址:https://marketplace.visualstudio.com/items?it ...

  9. mac手册汉化 2019

    1.安装依赖 brew install automake brew install opencc 2.编译 wget https://github.com/man-pages-zh/manpages- ...

  10. 怎样在 js 中实现 反转字符串 的功能?

    "string".split('').reverse().join('');