部署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. Java代替if和switch的方法(记录一下)

    package xcc.mapTest; /** * @Decription: 接口 * @Author: * @Date: * @Email: **/ public interface Functi ...

  2. linux驱动之jiffies的理解

    本文主要借鉴了http://blog.csdn.net/allen6268198/article/details/7270194,非常感谢该网友的分享. 在LINUX的时钟中断中涉及至二个全局变量一个 ...

  3. gorilla/mux 的学习

    原文链接:gorilla/mux的学习 源代码: package main import ( "encoding/json" "fmt" "githu ...

  4. mr原理简单分析

    背景 又是一个周末一天一天的过的好快,今天的任务干啥呢,索引总结一些mr吧,因为前两天有面试问过我?我当时也是简单说了一下,毕竟现在写mr程序的应该很少很少了,废话不说了,结合官网和自己理解写起. 官 ...

  5. seo工程师是什么,需要什么技能?

    http://www.wocaoseo.com/thread-222-1-1.html      seo工程师是什么,SEO工程师是目前需求较大的一种职业,是搜索引擎营销的一种,主要是是通过网站优化技 ...

  6. 我是怎样刚拿饿了么P7 offer,然后途虎一轮游的

    今年初拿了个饿了么P7的offer,于此同时大家顺便看看我怎么途虎一轮游的.废话不多说,直接上题吧. 一面 首先上来就是自我介绍,简单的说下自己的项目经验,涉及的技术栈之类的. 然后每一轮必问的问题来 ...

  7. android开发之java JDK环境变量配置的信息代码 附详细教程。

    java环境变量配置: [用户变量]class_path    .;%JAVA_HOME%\lib\tools;%JAVA_HOME%\jre PATH           ;%JAVA_HOME%\ ...

  8. sdf文件可以通过database net4工具升级版本

    用database .net4工具打开数据库后,右键数据库->数据库工具->upgrade to->to 4.0 or to 3.5; 可以用来判断数据库版本及是否要升级.

  9. flex 中间层的高度完全由flex元素决定

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 1.异常页面: /File/ApplyFileForm.aspx 2.异常信息: 基类包括字段“PageOfficeCtrl1”,但其类型(PageOffice.PageOfficeCtrl)与控件(PageOffice.PageOfficeCtrl)的类型不兼容。

    出现页面报错的解决如下: 1.  在  .aspx  页面报错的字段  ID 名称更改: 2.  在没有重复 ID控件,先实行步骤1, 生成项目是ok的,然后,还原,原来的ID名称,再去浏览页面运行, ...