部署Broketrmq集群

通过docker-compose形式部署

  • 首先创建 broker 配置文件,配置文件如下:
brokerClusterName = DefaultCluster  #集群名
brokerName = broker-a #node名,集群内唯一
brokerId = 0 #配置节点是主还是从,0为主,1为从
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = SYNC_FLUSH
listenPort = 10911
namesrvAddr=10.228.83.120:9876 #配置namesrvAddr注册中心地址
autoCreateTopicEnable=true #配置是否自动创建 Topic
autoCreateSubscriptionGroup=true #配置是否自动创建 SubscriptionGroup 订阅组
storePathRootDir=/home/rocketmq/store #配置数据存储位置,持久化使用
storePathCommitLog=/home/rocketmq/store/commitlog #配置日志存储位置
brokerIP1=10.228.83.120 #配置主机IP地址

配置文件参考

  • 创建yml文件,vim docker-compose.yml,配置文件如下:
version: '2'
services:
namesrv:
image: rocketmqinc/rocketmq
container_name: rmqnamesrv
ports:
- 9876:9876
volumes:
- /opt/namesrv/logs:/home/rocketmq/logs
- /opt/namesrv/store:/home/rocketmq/store
command: sh mqnamesrv
broker:
image: rocketmqinc/rocketmq
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
volumes:
- /opt/rocketmq/logs:/home/rocketmq/logs
- /opt/rocketmq/store:/home/rocketmq/store
- /opt/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
command: sh mqbroker -n rmqnamesrv:9876 autoCreateTopicEnable=true -c ../conf/broker.conf &
depends_on:
- namesrv
environment:
- JAVA_HOME=/usr/lib/jvm/jre
console:
image: styletang/rocketmq-console-ng
container_name: rocketmq-console-ng
ports:
- 8087:8080
depends_on:
- namesrv
environment:
- JAVA_OPTS= -Dlogging.level.root=info -Drocketmq.namesrv.addr=rmqnamesrv:9876
- Dcom.rocketmq.sendMessageWithVIPChannel=false

console 可不部署,就是一个可视化的web界面。可作为集群是否部署成功的一个参考,如下:

  • 如果后面需要添加集群的可参考如下操作

    • 同台主机添加

        1. 参考之前docker-compose.yml配置,创建相关broker文件夹
        2. 参考之前broker配置,创建broker配置文件
        3. 参考之前docker-compose.yml配置,编写docker run命令,命令样例如下:
        docker run -itd --name rmqbroker_b  --network=rocketmq_default   -p 10919:10909  -p 10921:10911 -p 10922:10912  -v /opt/rocketmq_b/logs:/home/rocketmq/logs  -v /opt/rocketmq_b/store:/home/rocketmq/store  -v /opt/rocketmq_b/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf  rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
    • 不同主机添加

        1. 参考之前docker-compose.yml配置,创建相关broker文件夹

        2. 参考之前broker配置,创建broker配置文件

        3. 参考之前docker-compose.yml配置,编写docker run命令,命令样例如下:

          docker run -itd --name rmqbroker_d    --privileged  -p 10929:10909  -p 10931:10911 -p 10932:10912  -v /opt/rocketmq_c/logs:/home/rocketmq/logs  -v /opt/rocketmq_c/store:/home/rocketmq/store  -v /opt/rocketmq_c/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf  -e "JAVA_OPT_EXT=-server -Xms2048m -Xmx2048m -Xmn2048m"    rocketmqinc/rocketmq   sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

          -e "JAVA_OPT_EXT=-server -Xms2048m -Xmx2048m -Xmn2048m"

          此参数待考证可不加,与同主机添加的不同就是网络模式指定的不同

结束!!!

参考链接

参考一

参考二

参考三

参考四

参考五

docker部署Broketrmq集群的更多相关文章

  1. Docker部署Hadoop集群

    Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...

  2. Docker部署Elasticsearch集群

    http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...

  3. 基于Docker部署ETCD集群

    基于Docker部署ETCD集群 关于ETCD要不要使用TLS? 首先TLS的目的是为了鉴权为了防止别人任意的连接上你的etcd集群.其实意思就是说如果你要放到公网上的ETCD集群,并开放端口,我建议 ...

  4. Docker部署zookeeper集群和kafka集群,实现互联

    本文介绍在单机上通过docker部署zookeeper集群和kafka集群的可操作方案. 0.准备工作 创建zk目录,在该目录下创建生成zookeeper集群和kafka集群的yml文件,以及用于在该 ...

  5. RabbitMQ系列(五)使用Docker部署RabbitMQ集群

    概述 本文重点介绍的Docker的使用,以及如何部署RabbitMQ集群,最基础的Docker安装,本文不做过多的描述,读者可以自行度娘. Windows10上Docker的安装 因为本人用的是Win ...

  6. Docker部署Consul集群

    服务介绍 Consul是一种分布式.高可用.支持水平扩展的服务注册与发现工具.包含的特性有:服务发现.健康检查.键值存储.多数据中心和服务管理页面等. 官方架构设计图: 图中包含两个Consul数据中 ...

  7. Docker环境下的前后端分离项目部署与运维(八)使用Docker部署RabbitMQ集群

    下载RabbitMQ镜像 镜像地址RabbitMQ Docker官方认证镜像地址:https://hub.docker.com/_/rabbitmq 安装命令安装之前,切记把Docker Hub设置为 ...

  8. 使用docker部署hadoop集群

    最近要在公司里搭建一个hadoop测试集群,于是采用docker来快速部署hadoop集群. 0. 写在前面 网上也已经有很多教程了,但是其中都有不少坑,在此记录一下自己安装的过程. 目标:使用doc ...

  9. Centos8 Docker部署ElasticSearch集群

    ELK部署 部署ElasticSearch集群 1.拉取镜像及批量生成配置文件 # 拉取镜像 [root@VM-24-9-centos ~]# docker pull elasticsearch:7. ...

随机推荐

  1. Atomic原子类

    Atomic原子类 Atomic原子类位于并发包java.util.concurrent下的java.util.concurrent.Atomic中. 1. 原子更新基本类型类 使用原子方式更新基本数 ...

  2. Redis设计与实现——独立功能的实现

    发布和订阅 频道的订阅和退订 struct redisServer{ //键是被订阅者频道 ,键是一个链表,记录所有订阅这个频道的客户端 dict *publish_channels } 订阅实现: ...

  3. QT下载速度慢的解决方法

    在官网的下载速度实在太慢了 找到了一个镜像网站 https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/

  4. 分布式数据库中间件 MyCat | 分库分表实践

    MyCat 简介 MyCat 是一个功能强大的分布式数据库中间件,是一个实现了 MySQL 协议的 Server,前端人员可以把它看做是一个数据库代理中间件,用 MySQL 客户端工具和命令行访问:而 ...

  5. AltiumDesigner画图不求人11 | 提高AD20启动速度的方法七选择手动释放工程 | 视频教程 | 你问我答

    往期文章目录 AD画图不求人1 | AD20软件安装视频教程 | 含软件安装包 AD画图不求人2 | 中英文版本切换 AD画图不求人3 | 高亮模式设置 AD画图不求人4 | 双击设计文件无法启动Al ...

  6. Java多线程_ReentrantLock

    ReentrantLock是重入锁,它与synchronized很像,它是synchronized的加强版,因为它具有一些synchronized没有的功能.下面我们看看两者的区别:synchroni ...

  7. 复制输入框内容(兼容ios)

    const copyInput = document.querySelector('.copy-container'); copyInput.select(); //安卓可识别进行选中 copyInp ...

  8. 传统servelt项目之分页操作

    需求说明: • 演示最终分页效果 • 提供分页素材     • 分页的作用 • 数据量大,一页容不下 • 后台查询部分数据而不是全部数据 • 降低带宽使用,提高访问速度     • 分页的实现思路 • ...

  9. 初学WebGL引擎-BabylonJS:第3篇-方向纹理与相机

    [playground]-rotatuib abd scaling(方向) 源码 var createScene = function () { var scene = new BABYLON.Sce ...

  10. Broker的主从架构是怎么实现的?

    前言 上一篇文章我们一起聊了聊RocketMQ的NameServer的一些内部工作流程,了解了NameServer的部署和与Broker之间的联系,那么今天我们就来一起聊聊Broker的一些内部原理. ...