通过Docker Compose安装MQTT

一、文件和目录说明

1、MQTT安装时的文件和目录

EMQX 安装完成后会创建一些目录用来存放运行文件和配置文件,存储数据以及记录日志。

不同安装方式得到的文件和目录位置有所不同,具体如下:

在这里插入图片描述
注意:

  • 压缩包解压安装时,目录相对于软件所在目录;
  • Docker 容器使用压缩包解压安装的方式,软件安装于 /opt/emqx 目录中
  • data、log、plugins 目录可以通过配置文件设置,建议将 data 目录挂载至高性能磁盘以获得更好的性能。但对于属于同一集群的节点, data 目录的配置应该相同。

2、文件和目录说明

这里介绍一下其中的部分目录,其中包含的文件和子文件夹。

在这里插入图片描述
注意:
EMQX 的配置项存储在 etc 和 data/configs 目录下,二者的主要区别是 etc 目录存储只读的配置文件,用户通过 Dashboard 和 REST API 提交的配置将被保存到 data/configs 目录下,并支持在运行时进行热更新。

EMQX 读取这些配置并将其合并转化为 Erlang 原生配置文件格式,以便在运行时应用这些配置。

配置文件手册:https://www.emqx.io/docs/zh/v5.1/configuration/configuration.html

二、通过Docker Compose安装MQTT

1、下载emqx-5.1.6的安装包

  • 下载地址:https://www.emqx.com/zh/try?product=broker

在这里插入图片描述

后面通过 Docker Compose启动时,发现报错,会提示我们缺少一些文件等问题。所以,我们提前将下载压缩包中需要的文件复制到我们映射的数据卷中。文件在压缩包里面的 /opt/emqx/中。

通过我再三的试错摸索,emqx-5.1.6版本需要提前把下面几个文件复制到我们对应的数据卷中。

└── emqx├── data│   └── configs├── etc├── acl.conf├── certs│   ├── cacert.pem│   ├── cert.pem│   ├── client-cert.pem│   ├── client-key.pem│   ├── key.pem│   └── README├── emqx.conf└── vm.args

2、准备文件和目录

1)在任意目录创建一个 mqtt_emqx5文件夹和数据卷所挂载的目录。

[root@centos7 ~]# mkdir /usr/local/src/mqtt_emqx5
[root@centos7 ~]# cd /usr/local/src/mqtt_emqx5
# 数据卷
[root@centos7 mqtt_emqx5]# mkdir -p ./emqx/data
[root@centos7 mqtt_emqx5]# mkdir -p ./emqx/etc
[root@centos7 mqtt_emqx5]# mkdir -p ./emqx/log

2)将上面压缩包中提到的那几个文件复制到我们的数据卷目录中

# 复制完之后,给挂载目录赋予权限
[root@centos7 mqtt_emqx5]# chmod 777 -R ./emqx/

创建并编写docker-compose.yaml

3)创建并编写docker-compose.yaml

[root@centos7 mqtt_emqx5]# cat docker-compose.yaml
version: '3.7'services:emqx5_s1:image: "emqx/emqx:5.1.6"container_name: "emqx5_s1"environment:- "EMQX_NAME=emqx5_s1"- "EMQX_HOST=127.0.0.1"ports:- 1883:1883- 8083:8083- 8084:8084- 8883:8883- 18083:18083volumes:- $PWD/emqx/etc:/opt/emqx/etc- $PWD/emqx/data:/opt/emqx/data- $PWD/emqx/log:/opt/emqx/log#restart: always
[root@centos7 mqtt_emqx5]#

EMQX默认开启的MQTT服务各个端口说明:

  • 1883:MQTT 协议端口
  • 8883:MQTT/SSL 端口
  • 8083:MQTT/WebSocket 端口
  • 8084:MQTT/WebSocket/SSL端口
  • 8080:HTTP API 端口
  • 18083:Dashboard 管理控制台端口

最终 mqtt_emqx5文件夹中的内容如下:

[root@centos7 mqtt_emqx5]# tree
.
├── docker-compose.yaml
└── emqx├── data│   └── configs├── etc│   ├── acl.conf│   ├── certs│   │   ├── cacert.pem│   │   ├── cert.pem│   │   ├── client-cert.pem│   │   ├── client-key.pem│   │   ├── key.pem│   │   └── README│   ├── emqx.conf│   └── vm.args└── log6 directories, 10 files

3、启动MQTT

  • 使用 docker-compose up启动的容器都在前台,控制台将会同时打印所有容器的输出信息,可以很方便进行调试,通过 Ctrl-C停止命令时,该容器也会停止。
  • 使用 docker-compose up -d命令,则将会在后台启动并运行该容器,一般推荐使用。

一般进入到 docker-compose.yml的上下文目录中,执行命令:

  • 启动项目:docker-compose up -d
  • 停止项目:docker-compose down
[root@centos7 mqtt_emqx5]# docker-compose up
Starting emqx5_s1 ... done
Attaching to emqx5_s1
emqx5_s1    | WARNING: Default (insecure) Erlang cookie is in use.
emqx5_s1    | WARNING: Configure node.cookie in /opt/emqx/etc/emqx.conf or override from environment variable EMQX_NODE__COOKIE
emqx5_s1    | WARNING: NOTE: Use the same cookie for all nodes in the cluster.
emqx5_s1    | EMQX_RPC__PORT_DISCOVERY [rpc.port_discovery]: manual
emqx5_s1    | EMQX_NODE__NAME [node.name]: emqx5_s1@127.0.0.1
emqx5_s1    | Listener ssl:default on 0.0.0.0:8883 started.
emqx5_s1    | Listener tcp:default on 0.0.0.0:1883 started.
emqx5_s1    | Listener ws:default on 0.0.0.0:8083 started.
emqx5_s1    | Listener wss:default on 0.0.0.0:8084 started.
emqx5_s1    | Listener http:dashboard on :18083 started.
emqx5_s1    | EMQX 5.1.6 is running now!

通过浏览器就可以访问 ip:18083端口(默认的用户名是admin,密码为public),登录成功后会打开一个管理控制台网页。主界面如下:

在这里插入图片描述

三、MQTTX客户端

官方下载,傻瓜式安装:https://mqttx.app/zh

1、建立连接

新建MQTT服务端连接。

在这里插入图片描述

2、订阅主题

在这里插入图片描述

MQTT 协议根据主题来转发消息。主题被用来标识和区分不同的消息,它是 MQTT 消息路由的基础。

主题通过 / 来区分层级,类似于 URL 路径。MQTT 主题支持以下两种通配符:+ 和 #。

  • +:表示单层通配符,例如 a/+ 匹配 a/x 或 a/y。
  • #:表示多层通配符,例如 a/# 匹配 a/x、a/b/c/d。

注意:通配符主题只能用于订阅,不能用于发布。

关于 MQTT 主题的更多详情,请参阅文章通过案例理解 MQTT 主题与通配符:https://www.emqx.com/zh/blog/advanced-features-of-mqtt-topics

MQTTX客户端的更多使用,查看官方文档。

– 求知若饥,虚心若愚。

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

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

相关文章

大模型扫盲之小白入门手记

本篇内容来自小米集团数据科学部负责人刘汉武老师的数据特训营笔记。不涉及深入的知识,仅在扫盲。 首先一个问题:大模型和大语言模型的区别是什么? 有人说大模型像是连接数据的星辰,能给我们提供前所未有的见解和洞察。现有的大模…

扩散模型 DDPM 核心代码梳理

参考内容: 大白话AI | 图像生成模型DDPM | 扩散模型 | 生成模型 | 概率扩散去噪生成模型 AIGC 基础,从VAE到DDPM 原理、代码详解 全网最简单的扩散模型DDPM教程 The Annotated Diffusion Model LaTeX公式编辑器 备注: 具体公式的推导请查看…

【聚类】K-Means聚类

cluster:簇 原理: 这边暂时没有时间具体介绍kmeans聚类的原理。简单来说,就是首先初始化k个簇心;然后计算所有点到簇心的欧式距离,对一个点来说,距离最短就属于那个簇;然后更新不同簇的簇心&a…

OpenCV(二十八):连通域分割

目录 1.介绍连通域分割 2.像素领域介绍 3.两遍法分割连通域 4.连通域分割函数 1.介绍连通域分割 连通域分割是一种图像处理技术,用于将图像中的相邻像素组成的区域划分为不同的连通域。这些像素具有相似的特性,如相近的灰度值或颜色。连通域分割可以…

C高级第2天

写一个1.sh脚本,将以下内容放到脚本中: 在家目录下创建目录文件,dir 在dir下创建dir1和dir2 把当前目录下的所有文件拷贝到dir1中, 把当前目录下的所有脚本文件拷贝到dir2中 把dir2打包并压缩为dir2.tar.xz 再把dir2.tar.xz…

Android 12 源码分析 —— 应用层 四(SystemUI的基本布局设计及其基本概念)

Android 12 源码分析 —— 应用层 四(SystemUI的基本布局设计及其基本概念) 在上两篇文章中,我们介绍SystemUI的启动过程,以及基本的组件依赖关系。基本的依赖关系请读者一定要掌握,因为后面的文章,将会时…

2023年9月惠州/深圳CPDA数据分析师认证找弘博创新

CPDA数据分析师认证是大数据方面的认证,助力数据分析人员打下扎实的数据分析基础知识功底,为入门数据分析保驾护航。 帮助数据分析人员掌握系统化的数据分析思维和方法论,提升工作效率和决策能力,遇到问题能够举一反三&#xff0c…

四川玖璨电子商务有限公司:抖店怎么运营爆款

如今,随着网络的普及和电商平台的兴起,越来越多的人开始关注和尝试开设自己的网店。然而,在面对激烈的市场竞争中,如何让自己的抖店脱颖而出,成为爆款产品的运营者,是每个抖店经营者迫切需要解决的问题。 …

elementUi中的el-table表格的内容根据后端返回的数据用不同的颜色展示

效果图如下&#xff1a; 首先 首先&#xff1a;需要在表格行加入 <template slot-scope"{ row }"> </template>标签 <el-table-column prop"usable" align"center" label"状态" width"180" ><templ…

【业务功能篇91】微服务-springcloud-多线程-线程池执行顺序

一、线程的实现方式 1. 线程的实现方式 1.1 继承Thread class ThreadDemo01 extends Thread{Overridepublic void run() {System.out.println("当前线程:" Thread.currentThread().getName());} }1.2 实现Runnable接口 class ThreadDemo02 implements Runnable{…

20个经典巧妙电路合集

1、防反接保护&#xff08;二极管&#xff09; 在实际电子设计中&#xff0c;防反接保护电路非常重要&#xff0c;不要觉得自己肯定不会接错&#xff0c;实际上无论多么小心&#xff0c;还是会犯错误...... 最简单的就是利用二极管了&#xff0c;利用二极管的单向导电性&#…

米贸搜什么是网站排名流量

当谈到数字营销时&#xff0c;你的网站应该作为线上营销的中心枢纽。包括&#xff1a;Ads付费广告、EDM邮件营销、SEO搜索引擎优化等都旨在吸引用户访问你的网站&#xff0c;并在网站上进行深度转化。 被广泛应用且最有效的营销策略之一就是SEO&#xff0c;流量排名是衡量网站受…

管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——减法原理除法原理

减法原理 正面难则反着做(“ − - −”号) 【思路】当出现“至少、至多”、“否定用语"等正面较难分类的题目&#xff0c;可以采用反面进行求解&#xff0c;注意部分反面的技巧以及“且、或"的反面用法。 除法原理 看到相同&#xff0c;定序用除法消序( “ &quo…

数据结构--5.0.1图的存储结构

目录 一、邻接矩阵&#xff08;无向图&#xff09; 二、邻接矩阵&#xff08;有向图&#xff09; 三、邻接矩阵&#xff08;网&#xff09; 四、邻接表&#xff08;无向图&#xff09; 五、邻接表&#xff08;有向图&#xff09; ——图的存储结构相比较线性表与树来说就复…

ChatGPT 总结数据分析的所有知识点

ChatGPT功能非常多,特别是对某个行业,某个方向,某个技术进行总结那是相当专业的。 如下图。 直接用一个指令便总结出来数据分析当中的所有知识点内容。 AIGC ChatGPT ,BI商业智能, 可视化Tableau, PowerBI, FineReport, 数据库Mysql Oracle, Office, Python ,ETL Ex…

UE4/UE5 动画控制

工程下载​ ​​​​​​​​​​​​​https://mbd.pub/o/bread/ZJ2cm5pu 蓝图控制sequence播放/倒播动画&#xff1a; 设置开启鼠标指针&#xff0c;开启鼠标事件 在场景中进行过场动画制作 设置控制事件

Excel VSTO开发5 -Excel对象结构

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 5 Excel对象结构 Excel提供了几个比较重要的对象&#xff1a; Application、Workbooks、Workbook、Worksheets、Worksheet 为了便…

I.MX RT1176笔记(9)-- 程序异常追踪(CmBacktrace 和 segger rtt)

前言 在使用 ARM Cortex-M 系列 MCU时候&#xff0c;有时候会遇到各种异常&#xff08;Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault&#xff09;&#xff0c;这时候我们根据经验查询PC指针&#xff0c;LR寄存器&#xff0c;堆栈数据定位地址然…

2023 年全国大学生数学建模D题目-圈养湖羊的空间利用率

D题目应该是专科题目&#xff1f;&#xff1f;&#xff1f;不确定了 感觉类似一个细胞分裂问题一样&#xff0c;1&#xff0c;2&#xff0c;4&#xff0c;8&#xff0c; 题目1中规中矩 按照前面说的分配方法&#xff0c;一步一步计算进行 缺口的问题考虑反推回去&#xff0c…

Friend.tech热潮未过,在推特刷屏的TipCoin又是个啥?

Web3社交赛道风起云涌&#xff0c;Friend.tech的热潮还没过&#xff0c;最近又有一款名为Tip Coin社交项目在X&#xff08;前Twitter&#xff09;开始刷屏。 TipCoin作为一款社交类区块链项目依托于X平台&#xff0c;用户通过在X平台上发布内容来进行“挖矿”&#xff0c;获得项…