docker安装rocketmq
一、单机部署
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的更多相关文章
- Docker安装rocketmq踩坑指南
Docker 网络 Docker容器运行的时候有host.bridge.none三种网络可供配置. 默认是bridge,即桥接网络,以桥接模式连接到宿主机:host是宿主网络,即与宿主机共用网络:no ...
- 基于 Docker 安装 RocketMQ
docker-compose.yml version: '3.5' services: rmqnamesrv: image: foxiswho/rocketmq:server container_na ...
- Docker 版rocketmq部署
rocketmq 部署启动指南-Docker 版 最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑. 准备工作# ...
- RabbitMQ从概念到使用、从Docker安装到RabbitMQ整合Springboot【1.5w字保姆级教学】
@ 目录 一.前言 二.RabbitMQ作用 1. 异步处理 2. 应用解耦 3. 流量控制 三.RabbitMQ概念 1. RabbitMQ简介 2. 核心概念 四.JMS与AMQP比较 五.Rab ...
- Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)
文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...
- Docker 部署 RocketMQ 双主双从模式( 版本v4.7.0)
文章转载自:http://www.mydlq.club/article/96/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...
- 理解Docker(1):Docker 安装和基础用法
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- docker安装
系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r //查看内核版本yum -y update //更新系统更新到最新 #安装d ...
- 2. Docker - 安装
一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...
随机推荐
- python3.7环境下创建app、运行Django1.11版本项目报错Generator expression must be parenthesized
有些同学喜欢追求新鲜感~但追求新鲜感终归是要付出一点点代价的 在编程领域有一句至理名言:用东西不要用最新的! 就像每次苹果系统的升级都会有相当一部分用户的手机成砖一样 下面我们就介绍一个因版本升级带来 ...
- 【转帖】docker-get拉取镜像
docker-get拉取镜像 题目很诱人 找时间测试一下 是否可以翻越长城下载镜像. https://www.cnblogs.com/fuyuteng/p/10904495.html docker-g ...
- CentOS7之yum仓库配置
操作系统版本:CentOS Linux release 7.2.1511 (Core) Yum软件版本:yum-3.4.3-132.el7.centos.0.1.noarch Yum主配置文件:/ ...
- OpenVZ平台 Google BBR加速
前言 一直以来用的都是搬瓦工的VPS,不得不说比国内那些大厂的性价比高得不知道哪里去了. 当做梯子来用的话搬瓦工年付19.9美元的方案就够用了,网上还有一些官方优惠码(折扣6%: BWH1ZBPV ...
- 如何给django admin.py配置超级管理员?注册表格?
admin.py是django给我们提供的功能非常强大的后台,况且支持拓展,,如果你要是觉得admin的后台不够牛逼你可以自己写一个!如何自己写一个后台,后面我有时间了会给大家更新!一起学习!一起进步 ...
- Ruby Rails学习中:登陆
登陆 一. Sessions 控制器 登录和退出功能由 Sessions 控制器中相应的 REST 动作处理 : 登录表单在 new 动作中处理, 登录的过程是向 create 动作发送 POST 请 ...
- Elastic Search中DSL Query的常见语法
Query DSL是一种通过request body提交搜索参数的请求方式.就是将请求头参数(?xxx=xxx)转换为请求体参数.语法格式:GET [/index_name/type_name]/_s ...
- python 安装PostgreSQL 模块:psycopg2
官方资料:http://www.psycopg.org/psycopg/docs/ 安装: yum -y install python-psycopg2 (安装的版本可能是2.0) pip insta ...
- windows 控制台默认为UTF-8显示的方法
这里需要先了解些内容: CHCP CHCP是MS DOS中的命令,用来显示或设置活动代码页编号的.用法是: CHCP [nnn] 其中nnn指定的是代码页的编号.这个参数是可选的,在命令行下如果不指定 ...
- 史上最全的MySQL高性能优化实战总结!
1.1 前言 MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰.在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多 ...