一、单机部署

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. mysql 插入数据后返回自增 ID 的七种方法

    参考地址:https://blog.csdn.net/qq_30715329/article/details/80868411 其中使用函数方式.存储过程方式.注解方式.xml属性方式设置都可. 常用 ...

  2. 【LOJ】#3046. 「ZJOI2019」语言

    LOJ#3046. 「ZJOI2019」语言 先orz zsy吧 有一个\(n\log^3n\)的做法是把树链剖分后,形成logn个区间,这些区间两两搭配可以获得一个矩形,求矩形面积并 然后就是对于一 ...

  3. C#与C++的区别

    C# 参考链接:https://www.runoob.com/csharp/csharp-tutorial.html ------------------C#数据类型----------------- ...

  4. [经验分享] Docker网络解决方案-Weave部署记录

    前面说到了Flannel的部署,今天这里说下Docker跨主机容器间网络通信的另一个工具Weave的使用.当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的 ...

  5. 并不对劲的复健训练-bzoj5253:loj2479:p4384:[2018多省联考]制胡窜

    题目大意 给出一个字符串\(S\),长度为\(n\)(\(n\leq 10^5\)),\(S[l:r]\)表示\(S_l,S_{l+1}...,S_r\)这个子串.有\(m\)(\(m\leq 3\t ...

  6. PMP - 风险识别之风险登记册

    目录 PMP - 风险识别之风险登记册 1. 风险登记册 1.1 已识别风险的清单 1.2 潜在风险责任人 1.3 潜在风险应对措施清单 2. 相关习题 2.1 风险发生的时候,要实施 风险登记册 上 ...

  7. Atcoder-SoundHound Inc.Contest 2018 -Masters Tournament-比赛报告

    A C++ Example #include <iostream> #include <cstdio> #include <cstdlib> #include &l ...

  8. centos7安装配置zabbix监控

    CentOs7安装部署Zabbix3.4 1.关闭selinux和firewall systemctl  stop  firewalld setenforce 1.1检测selinux是否关闭 [ro ...

  9. Navicat for Mysql报错1251连接不成功Mysql

    第一步:打开Command Line Client   看清楚不是cmd,是在mysql的目录下,你会发现有2个一模一样其实哪个都行 第二步:输入mysql密码回车    就是安装mysql时设置的密 ...

  10. app hellocharts 柱状图

    app里有个告警数量的柱状图,有点小问题,y轴竟然不是整数 这个改起来到是简单 Axis yAxis = new Axis().setHasLines(true).setTextColor(Color ...