一、单机部署

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. Apache配置同一IP使用多域名对应多个网站

    CentOS下的Apache的配置是/etc/httpd/conf/httpd.conf vi /etc/httpd/conf/httpd.conf 添加 <VirtualHost *:80&g ...

  2. 第十三章 字符串(一)之 String

    这一节来学习String的特性和方法. 一.String对象的不变性 不变性:String对象是由一个final char[] value 数组实现的,因此String对象是不可变的.任何看起来改变S ...

  3. Linux系列(3):入门之正确的关机方法

    前言:在Windows(非NT主机系统)系统中,由于是单人假多任务的情况,所以即使你计算机关机,对于别人也没有丝毫影响!不过,在Linux下面,由于每个程序(或者服务)都是在在背景下执行,因此,在看不 ...

  4. 函数try{}

    语法 函数try块是一种函数体的替代语法形式,是函数定义的一部分 try构造函数初始化器 复合语句 处理块序列 (1)构造函数初始化器 - 成员初始化器列表,只在构造函数允许 (2)复合语句 - 花括 ...

  5. Ugly Numbers UVA - 136(优先队列+vector)

    Problem Description Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, ...

  6. Linux就该这么学——新手必须掌握的命令之工作目录切换命令组

    pwd命令 用途 : 用于显示用户当前所处的工作目录.如下图pwd命令运行结果所示 格式 : pwd[选项] 图pwd命令运行结果所示 cd命令 用途 : 用于切换工作路径,如图cd命令运行结果 格式 ...

  7. B2B、B2C、C2C、O2O分别是什么意思?

    1.B2B 是指进行电子商务交易的供需双方都是商家(或企业.公司),她(他)们使用了互联网的技术或各种商务网络平台,完成商务交易的过程.电子商务是现代 B2B marketing的一种具体主要的表现形 ...

  8. go get 安装一个特定版本的包失败解决方法

    场景描述 go get 下载第三方包golang gin框架时,会去下载gopkg.in/go-playground/validator.v8包以及gopkg.in/yaml.v2包,gopkg.in ...

  9. js排列组合

    /* 全排列主要用到的是递归和数组的插入 arr: 需要排列的数组 第一步:从里面取一个,创建一个新的数组,形式为二维,例如arr = [1,2,3]; 取出3(没有特殊要求,随便取一个),放入 te ...

  10. 算法:二叉树的层次遍历(递归实现+非递归实现,lua)

    二叉树知识参考:深入学习二叉树(一) 二叉树基础 递归实现层次遍历算法参考:[面经]用递归方法对二叉树进行层次遍历 && 二叉树深度 上面第一篇基础写得不错,不了解二叉树的值得一看. ...