ActiveMQ + MQTT 集群搭建(docker版本)

文章目录

  • 前言
  • 一、docker方式部署
    • 1.创建挂载目录
    • 2.分别修改三个配置文件(虚机配置第三点一致),如下:
    • 3.容器启动:
    • 4.集群验证
  • 总结


前言

上一篇文章已经总结了
ActiveMQ + MQTT 集群搭建(虚机版本) + Springboot使用配置

本篇文章总结一下docker部署方案


一、docker方式部署

1.创建挂载目录

本地创建挂载目录:/home/jenkins/test_apps/mnt/activemq-cluster。

在该目录下基于activemq.xml修改名字创建三个配置文件activemq-clusters.xml、activemq-master.xml、activemq-slave.xml。

在该目录下创建目录kahadb用来挂载数据。

2.分别修改三个配置文件(虚机配置第三点一致),如下:

<transportConnectors><!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=10000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=10000&amp;wireFormat.maxFrameSize=104857600"/></transportConnectors><!-- 配置网络代理,cluster 节点需要与 master 跟 slave 进行穿透 --><networkConnectors><networkConnector name="network-clusters" uri="static:(tcp://192.168.10.41:61617,tcp://192.168.10.41:61618)" duplex="true" /></networkConnectors><transportConnectors><!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --><transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=10000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="mqtt" uri="mqtt://0.0.0.0:2884?maximumConnections=10000&amp;wireFormat.maxFrameSize=104857600"/></transportConnectors><!-- 配置网络代理,master 节点需要与 cluster 跟 slave 进行穿透 --><networkConnectors><networkConnector name="network-master" uri="static:(tcp://192.168.10.41:61616,tcp://192.168.10.41:61618)" duplex="true" /></networkConnectors><transportConnectors><!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --><transportConnector name="openwire" uri="tcp://0.0.0.0:61618?maximumConnections=10000&amp;wireFormat.maxFrameSize=104857600"/><transportConnector name="mqtt" uri="mqtt://0.0.0.0:2885?maximumConnections=10000&amp;wireFormat.maxFrameSize=104857600"/></transportConnectors><!-- 配置网络代理,slave 节点需要与 master 跟 cluster 进行穿透 --><networkConnectors><networkConnector name="network-slave" uri="static:(tcp://192.168.10.41:61616,tcp://192.168.10.41:61617)" duplex="true" /></networkConnectors>

3.容器启动:

-----------无挂载日志----------- 
clusters启动:
docker run --name='activemq_clusters' \
-itd \
--privileged=true \
--restart=unless-stopped \
-p 61616:61616 \
-p 8161:8161 \
-p 1883:1883 \
-e ACTIVEMQ_ADMIN_LOGIN=admin \
-e ACTIVEMQ_ADMIN_PASSWORD=admin \
-v /home/jenkins/test_apps/mnt/activemq-cluster/activemq-clusters-a.xml:/opt/activemq/conf/activemq.xml \
webcenter/activemq:5.15.12master启动
docker run --name='activemq_master' \
-itd \
--privileged=true \
--restart=unless-stopped \
-p 61617:61617 \
-p 8171:8161 \
-p 2884:1884 \
-e ACTIVEMQ_ADMIN_LOGIN=admin \
-e ACTIVEMQ_ADMIN_PASSWORD=admin \
-v /home/jenkins/test_apps/mnt/activemq-cluster/activemq-master-a.xml:/opt/activemq/conf/activemq.xml \
-v /home/jenkins/test_apps/mnt/activemq-cluster/kahadb:/opt/activemq/data/kahadb \
webcenter/activemq:5.15.12slave启动:
docker run --name='activemq_slave' \
-itd \
--privileged=true \
--restart=unless-stopped \
-p 61618:61618 \
-p 8181:8161 \
-p 2885:1885 \
-e ACTIVEMQ_ADMIN_LOGIN=admin \
-e ACTIVEMQ_ADMIN_PASSWORD=admin \
-v /home/jenkins/test_apps/mnt/activemq-cluster/activemq-slave-a.xml:/opt/activemq/conf/activemq.xml \
-v /home/jenkins/test_apps/mnt/activemq-cluster/kahadb:/opt/activemq/data/kahadb \
webcenter/activemq:5.15.12

4.集群验证

1、容器启动后,和虚机一样进行配置检查,判断网络连接是否互通,是否形成集群;
2、项目配置同虚机搭建;


总结

对docker搭建ActiveMQ + MQTT集群进行了简单总结,记录一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ONERugged车载平板电脑厂家丨工业车载电脑优势体现丨3年质保

作为现代社会中必不可少的出行工具&#xff0c;汽车不仅仅是代步工具&#xff0c;更是我们生活中的重要一部分。而在如此多功能的汽车内&#xff0c;一款高可靠性、适应不同行业应用的车载平板电脑成为了当下的热门选择。ONERugged车载平板电脑以其卓越的品质和强大的功能而备受…

Java前置一些知识

文章目录 搭建Java环境安装path环境变量Java技术体系 Java执行原理JDK组成跨平台Java内存分配 IDEA管理Java程序 搭建Java环境 安装 oralce官网下载 JDK17 Windows 傻瓜式的点下一步就行&#xff0c;注意&#xff1a;安装目录不要有空格、中文 java 执行工具 javac 编译工具…

MWeb Pro For Mac v4.5.9 强大的 Markdown 软件中文版

MWeb 是专业的 Markdown 写作、记笔记、静态博客生成软件&#xff0c;目前已支持 Mac&#xff0c;iPad 和 iPhone。MWeb 有以下特色&#xff1a; 软件下载&#xff1a;MWeb Pro For Mac v4.5.9 软件本身&#xff1a; 使用原生的 macOS 技术打造&#xff0c;追求与系统的完美结合…

为什么需要网络切片?

网络切片是电信领域的一个突破性概念&#xff0c;它允许将物理网络基础设施划分为多个虚拟网络&#xff0c;称为切片。每个切片作为一个独立的网络运行&#xff0c;拥有自己的专用资源和定制的特性&#xff0c;满足不同应用、行业或用户的特定需求。 将网络切片视为在共享物理…

Linux云计算之Linux基础3——Linux系统基础part-2

1、终端、shell、文件理论 1、终端 终端(terminal)&#xff1a;人和系统交互的必要设备&#xff0c;人机交互最后一个界面&#xff08;包含独立的输入输出设备&#xff09; 物理终端(console)&#xff1a;直接接入本机器的键盘设备和显示器虚拟终端(tty)&#xff1a;通过软件…

富格林:堤防交易陷阱安全做单交易

富格林悉知&#xff0c;现货黄金市场是一个包容性很强的市场&#xff0c;因为它有非常方便的交易规则。投资者可在市场以不同的交易方式来获取盈利&#xff0c;但同时需注意的是&#xff0c;市场也存在一定的交易陷阱&#xff0c;要注意的提高辨别能力&#xff0c;谨防落入陷阱…

数据绑定多级对象属性时的报错解决

数据绑定多级对象属性时的报错解决 &#xff08;1&#xff09;例子如下&#xff1a; &#xff08;2&#xff09;当syncObjForm被后台数据赋值时&#xff0c;会产生报错&#xff1a; &#xff08;3&#xff09;原因就是&#xff1a; 模板在渲染时&#xff0c;读取对象中的某个…

TensorRT从入门到了解-学习笔记(待续)

b站TensorRT官方教程学习笔记 目录 0.简述1. Part1 TensorRT 简介1.1 TensorRT 简介1.1.1 TensorRT基本特性和用法1.1.2 TensorRT基本流程1.1.3 TensorRT上搭建模型方法1.1.3.1 Workflow:使用TensorRT API搭建1.1.3.1.1 Logger日志记录器1.1.3.1.2 Builder引擎构建器1.1.3.2 Wo…

普通人怎么赚钱?2024普通人做什么好?2024创业项目小成本!2024创业新项目新商机!2024做什么行业前景好?

普通人真的想赚钱&#xff0c;必须得去赚看得见的钱。什么是看得见的钱&#xff1f;打个比方卖一份炒粉&#xff0c;成本是三块&#xff0c;卖十块钱&#xff0c;一天卖出去100份&#xff0c;那一天就赚700块钱&#xff0c;而不是去跟人合伙&#xff0c;你连钱都没赚到&#xf…

【matlab】如何解决打开缓慢问题(如何让matlab在十几秒内打开)

【matlab】如何解决打开缓慢问题&#xff08;如何让matlab在十几秒内打开&#xff09; 找到我们解压缩时Crack中的license_standalone.lic文件&#xff0c;将其拷贝 在安装matlab的路径下新建一个文件&#xff0c;粘贴上面的license_standalone.lic文件 在桌面鼠标移动到matl…

每日一题:修改后的最大二进制字符串

给你一个二进制字符串 binary &#xff0c;它仅有 0 或者 1 组成。你可以使用下面的操作任意次对它进行修改&#xff1a; 操作 1 &#xff1a;如果二进制串包含子字符串 "00" &#xff0c;你可以用 "10" 将其替换。 比方说&#xff0c; "00010"…

【leetcode面试经典150题】34.有效的数独(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

OpenHarmony4.0源码解析之媒体框架

媒体框架简介 媒体框架 multimedia_player_framework 主要提供音视频的录制与播放功能。 框架简介 从框架图中可以看出&#xff0c;媒体框架的主要工作模式为通过 Gstreamer 的插件自动化注册及插件组合功能&#xff0c;将其余媒体播放相关的框架功能插件化&#xff0c;配合 …

linux学习:内存(栈,堆,数据段,代码段)

目录 内存 栈内存 堆内存 数据段 代码段 注意 堆 例子 内存 Linux 操作系统为了更好更高效地使用内存&#xff0c;将 实际物理内存进行了映射&#xff0c;对应用程序屏蔽了物理内存的具体细节&#xff0c;有利于简化程序的编写 和系统统一的管理。 假设你正在使用的…

【热门话题】OneFlow深度学习框架介绍

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 OneFlow深度学习框架介绍引言一、OneFlow概述1.1 定位与起源1.2 核心特性数据流…

1.8.1 卷积神经网络近年来在结构设计上的主要发展和变迁——AlexNet

1.8.1 卷积神经网络近年来在结构设计上的主要发展和变迁——AlexNet (从AlexNet到ResNet系列) AlexNet首次亮相是在2012年的ILSVRC大规模视觉识别竞赛上&#xff0c;它将图像分类任务的Top-5错误率降低到15.3%&#xff0c;大幅领先于其他传统方法。AlexNet是首个实用性很强的…

Linux网络名称空间的调试方法全面分析

Linux网络名称空间是一种广泛使用的技术&#xff0c;用于隔离网络环境&#xff0c;特别是在容器化和微服务架构中&#x1f4e6;。然而&#xff0c;随着网络名称空间的广泛应用&#xff0c;开发者和系统管理员可能会遇到需要调试网络名称空间配置和性能的情况&#x1f50d;。本文…

WEB3浪潮下的全新体验:精灵派对链游引领边玩边赚的创新之旅

在当前的数字经济浪潮中&#xff0c;区块链技术以其独特的去中心化特性&#xff0c;正在逐渐改变我们的生活和工作方式。其中&#xff0c;区块链游戏&#xff08;链游&#xff09;作为新兴的领域&#xff0c;正以其独特的优势吸引着全球玩家的目光。在这样一个背景下&#xff0…

split和join的区别

split和join是Python中字符串&#xff08;string&#xff09;类型的两种常用方法&#xff0c;它们用于对字符串进行分割和合并。 1.split() 方法&#xff1a; split() 方法用于将字符串按照指定的分隔符&#xff08;如果没有指定分隔符&#xff0c;则默认为所有的空白字符&am…

C语言学习笔记day18

1. 指针基本概念 1.地址:用来区分内存中不同字节的编号 2.指针:地址就是指针,指针就是地址 3.指针变量:存储指针的变量,有时去掉变量,称为指针 2. 指针运算符 1.&: 1.获得一个变量在内存空间中的首地址 2.让表达式类型升级 2.*: 1.取…