【物联网】EMQX(二)——docker快速搭建EMQX 和 MQTTX客户端使用
一、前言
在上一篇文章中,小编向大家介绍了物联网必然会用到的消息服务器EMQ,相信大家也对EMQ有了一定的了解,那么接下来,小编从这篇文章正式开始展开对EMQ的学习教程,本章节来记录一下如何对EMQ进行安装。
二、使用Docker快速安装EMQ
EMQ作为第三方中间件,可以安装到很多种平台上,比如macOS、windows、Centos、Ubuntu等等。安装部署非常的简单,下面小编亿在mac上进行docker安装为例,展示一下安装过程。当然在生产环境,最好还是使用物理机部署emq,保证emq的稳定。
Docker容器开发,相信大家应该或多或少有所了解,了解的同学可以直接跳过docker的安装过程,如果不了解,大家可以参看一下小编下面的文章,简单介绍了docker是什么?以及如何使用docker简单的搭建容器:
【Docker】容器技术黑马Docker(一)——了解容器技术,了解Docker
【Docker】容器技术黑马Docker(二)——安装与基本命令的使用
接下来我们将在docker上安装emq容器,并进行消息的发送和订阅
下载EMQ镜像
小编这里使用的是mac版本的docker,安装好docker后,我们直接执行命令,来拉取emq的镜像:
运行一下命令获取Docker镜像:
docker pull emqx/emqx:5.3.2
执行完命令,就可以看到 Status: Downloaded newer image for emqx/emqx:5.3.2 这样的提示,表示下载镜像完成了。

tips: 如果发现下载不下来,可能是配置的docker源的问题,可以使用下面命令来查看使用的是哪个下载的源:
docker info | grep Registry

如果发现是外国的源,我们可以替换为国内常用的 阿里云的源,进行下载
docker login registry.cn-hangzhou.aliyuncs.com

注意这里需要使用阿里云的账号进行登录,需要在阿里云的容器平台注册账号,而不是阿里云的登录账号密码
详情可以参看:
docker切换阿里云源
这样我们下载好镜像,可以通过下面命令看到已经有的镜像
docker images

运行Docker容器
运行以下命令启动Docker容器:
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.3.2
命令的解释如下:
-d:以分离模式(detached mode)运行容器。这意味着容器将在后台运行,而不会将控制台输出连接到当前终端。
–name emqx:为容器指定一个名称,这里将容器命名为 emqx。
-p 1883:1883:将容器的端口 1883 映射到主机的端口 1883。这意味着容器内的应用程序可以在端口 1883 上接收来自主机的连接。
-p 8083:8083:将容器的端口 8083 映射到主机的端口 8083。这意味着容器内的应用程序可以在端口 8083 上接收来自主机的连接。
-p 8084:8084:将容器的端口 8084 映射到主机的端口 8084。这意味着容器内的应用程序可以在端口 8084 上接收来自主机的连接。
-p 8883:8883:将容器的端口 8883 映射到主机的端口 8883。这意味着容器内的应用程序可以在端口 8883 上接收来自主机的连接。
-p 18083:18083:将容器的端口 18083 映射到主机的端口 18083。这意味着容器内的应用程序可以在端口 18083 上接收来自主机的连接。
emqx/emqx:5.3.2:指定要运行的镜像。这里使用的是 emqx/emqx 镜像的 5.3.2 版本。这个镜像包含了一个名为 emqx 的应用程序。
这个命令的整体效果是在后台运行一个名为 emqx 的容器,容器内运行着一个名为 emqx 的应用程序。容器的端口 1883、8083、8084、8883 和 18083 都被映射到主机的对应端口上,这样主机就可以通过这些端口与容器内的应用程序进行通信。

这样就运行起来了。
查看EMQ的dashboard
访问本机的 http://localhost:18083/#/login?to=/dashboard/overview ,登录emq的dashboard,默认用户名admin,密码public

登录成功后:
在首页,一共包含了三个tab页面:
- 概览:显示整个集群内数据的概况,可以看到总连接数,在线连接数等
- 节点:查看集群中的节点列表和节点信息,
- 指标:查看集群或单个节点内所有的数据指标



其他的模块,大家可以点点看看。这里不做太多的介绍了。
三、MQTTX客户端连接EMQ
接下来我们介绍一下MQTTX客户端连模拟一下生产者和消费者。
首先我们下载一个MQTTX客户端:
我们可以在EMQ官网的首页 ,进行下载,选择对应平台下载即可。

下载后安装打开,会看到如下的界面:

建立一个新链接:

然后建立一个订阅topic ,这里小编建立的是emq这个名字,我们向这个topic发送消息,同时也订阅这个消息。
当我们向 这个emq这个topic发送了 hello消息。这个时候可以看到也收到了一条消息。

我们再次去后台看一下:
在客户端模块 可以看到此时有一个客户端连接上来。


四、小结
通过上面的安装学习,相信大家已经了解了EMQ这个消息中间件是如何处理消息的。其实还是通过学习老的知识,对比学习会有更大的收获,和kafka做对比。相比之下,emq在硬件上使用是更加方便的,举个例子,家里的小米智能家居是如何收到我们的操作指令的呢?我们手机控制灯关闭,开启。其实也就是先发送消息到EMQ消息中间件上,台灯订阅的EMQ的消息TOPIC,当有消息来的时候,就会收到消息,从而做出对应的动作。
期望您的到来,请查看:
【物联网】EMQX(一)——EMQ是什么?物联网竟然用这个?
【物联网】EMQX(二)——docker快速搭建EMQX 和 MQTTX客户端使用
【物联网】EMQX(三)——如何使用SSL/TLS双向认证连接EMQX?
【物联网】EMQX(四)——java服务端如何连接EMQ?
【物联网】EMQX(五)——待定
相关文章:
【物联网】EMQX(二)——docker快速搭建EMQX 和 MQTTX客户端使用
一、前言 在上一篇文章中,小编向大家介绍了物联网必然会用到的消息服务器EMQ,相信大家也对EMQ有了一定的了解,那么接下来,小编从这篇文章正式开始展开对EMQ的学习教程,本章节来记录一下如何对EMQ进行安装。 二、使用…...
2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心
2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心 前言一. Amazon Connect 介绍 🗺️二. Amazon Connect 使用教程 🗺️1.我们打开URl链接找到对应服务2.输入Amazon Connect选中第一个点击进入即可;3.在进入之后我们就…...
鸿蒙开发之用户隐私权限申请
一、简介 鸿蒙开发过程中可用于请求的权限一共有两种:normal和system_basic。以下内容摘自官网: normal权限 normal 权限允许应用访问超出默认规则外的普通系统资源。这些系统资源的开放(包括数据和功能)对用户隐私以及其他应用带…...
Docker笔记:简单部署 nodejs 项目和 golang 项目
docker 简单的维护 nodejs 项目容器 1 )Nodejs 程序 const express require(express) const app express()app.get(/, (req, res) > {res.send(首页) })app.get(/news, (req, res) > {res.send(news) })// dokcer 做端口映射不要指定ip app.listen(3000)2…...
java内置的数据结构
Java语言提供了许多内置的数据结构,包括: 1. 数组(Array):数组是最基本的数据结构之一,它是一个有序的元素集合,每个元素都有一个对应的索引。在Java中,数组可以通过声明和初始化来创…...
轻松搭建FPGA开发环境:第三课——Vivado 库编译与设置说明
工欲善其事必先利其器,很多人想从事FPGA的开发,但是不知道如何下手。既要装这个软件,又要装那个软件,还要编译仿真库,网上的教程一大堆,不知道到底应该听谁的。所以很多人还没开始就被繁琐的开发环境搭建吓…...
【PostgreSQL】从零开始:(十一)PostgreSQL-Dropdb命令删除数据库
dropdb命令删除数据库 命令 [postgrespostgre-sql bin]$ dropdb --help dropdb removes a PostgreSQL database.Usage:dropdb [OPTION]... DBNAMEOptions:-e, --echo show the commands being sent to the server-f, --force try to terminate …...
UDP网络编程其他相关事项
netstat指令 netstat -an 可以查看当前主机网络情况,包括端口监听情况和网络连接情况。 netstat -an | more 可以分页显示。 要求在dos控制台下执行。 说明:(1)Listening表示某个端口在监听;(2…...
Redhat LINUX 9.3 + PG 16.1 搭建主备流复制
一直想搭建一个PG流复制,最近正好有一个新环境,操作系统是最新的,rhel 9.3,数据库是最新的 pg 16.1,借鉴了网上的步骤,尤其是小工到专家的内容,在此谢过。 1.安装环境 1)IP: 主:192.168.133.151…...
kafka设置消费者组
安装部署后 consumer.properties group.idtest-group 单机测试,自己开俩窗口,一个测试消费者,一个测试生产者(创建消息那步) 创建主题 bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replica…...
Worker-Thread设计模式
Worker-Thread模式类似于工厂流水线,有时也称为流水线设计模式。线程池在某种意义上也算是Worker-Thread模式的一种实现,线程池初始化时创建线程类似于在流水线等待工作的工人,提交给线程池的Runnable接口类似于需要加工的产品,Ru…...
npm 安装包遇到问题的常用脚本(RequestError: socket hang up)
前言 最近在给一个基于 Electron 的开源项目做贡献,需要去安装一些 npm 库,由于众所周知的原因,经常会出现报错: npm ERR! path D:\Projects\project\node_modules\electron npm ERR! command failed npm ERR! command C:\Windo…...
活动 | Mint Blockchain 将于 2024 年 1 月 10 号启动 MintPass 限时铸造活动
MintPass 是由 Mint Blockchain 官方发行的 Mint 网络和社区的 NFT 通行证,将在 2024 年 1 月份启动限时铸造活动。今天这篇文章会着重向大家介绍即将举办的 MintPass 活动的基础信息。 MintPass 有 2 种类型: 类型 1:Mint Genesis NFT Mint…...
Android动画(四)——属性动画ValueAnimator的妙用
目录 介绍 效果图 代码实现 xml文件 介绍 ValueAnimator是ObjectAnimator的父类,它继承自Animator。ValueAnimaotor同样提供了ofInt、ofFloat、ofObject等静态方法,传入的参数是动画过程的开始值、中间值、结束值来构造动画对象。可以将ValueAnimator看…...
C语言飞机大战
一、前言 [设计难度 : ★☆☆☆☆ [参考书籍:《C语言课程设计与游戏开发实践教程》 [主要涉及知识:函数封装 循环判断语句 [程序运行效果图: [主要的游戏功能: 通过按键’w’,‘s’,‘a’,d’分别实现飞机的上下左右移动 按空格…...
js 原型 和 原型链
function Person(name,age){ this.name name this.age age } var p new Person(张三,11) //创建构造函数的时候,解析器会自动为构造函数创建prototype属性,prototype属性对应的对象就是原型对象 // prototype 翻译为 原…...
如何利用SD-WAN节省运维成本和简化运维工作?
在当今数字化时代,企业对于网络的要求越来越高,需要保障网络的安全性、可靠性和灵活性。同时,随着企业的上云和远程办公等需求的增加,传统的WAN网络已经无法满足企业的需求。因此,SD-WAN技术应运而生。 SD-WAN节省运维…...
在工作中使用CHAT提高效率
问CHAT:数智时代与中国情境下的营销管理创新方向:市场营销(管理)的使命 CHAT回复:市场营销(管理)的使命可以被概述为寻找、吸引和保留消费者。通过识别、满足甚至超越消费者期望,以实…...
Maven 项目的三种打包方式与 pom.xml 文件中项目描述
目录: 定义项目的信息 本项目描述相关标签<parent> 标签<relativePath/> 标签<scope> 标签 Maven 三种打包方式 JARWARPOM 原文链接 — —...
【普中】基于51单片机简易计算器数码管显示设计( proteus仿真+程序+实物演示+讲解视频)
【普中开发板】基于51单片机简易计算器数码管显示设计( proteus仿真程序实物演示讲解视频) Proteus 仿真:Proteus 8.16(有低版本) 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:P04 1. 主要功能:…...
从零开始深度学习:PyTorch 2.8镜像环境配置与验证教程
从零开始深度学习:PyTorch 2.8镜像环境配置与验证教程 1. 为什么选择PyTorch 2.8镜像? 深度学习环境配置一直是让开发者头疼的问题,特别是当需要GPU加速时,PyTorch版本、CUDA工具包、显卡驱动之间的兼容性问题常常让人望而却步。…...
OpenClaw隐私保护:GLM-4.7-Flash本地处理敏感数据的实践方案
OpenClaw隐私保护:GLM-4.7-Flash本地处理敏感数据的实践方案 1. 为什么需要本地化AI处理敏感数据? 去年我在处理公司财务报告自动化时遇到一个棘手问题:使用云端AI服务需要上传包含客户隐私的Excel文件到第三方服务器。尽管服务商承诺数据安…...
OpenCV图像预处理失效全解析,深度解读光照不均、反光伪影、亚像素抖动下的鲁棒代码实现
第一章:OpenCV图像预处理失效的典型工业场景综述在工业视觉检测系统中,OpenCV常被用作图像预处理的核心工具,但其默认参数与理想假设在真实产线环境中频繁失效。光照剧烈波动、镜头污损、金属反光、高速运动拖影以及低信噪比成像等物理约束&a…...
IDEA插件开发实战:手把手教你开发首个效率工具(附GitHub源码)
IDEA插件开发实战:从零打造你的专属效率工具 JetBrains系列IDE的强大之处不仅在于其核心功能,更在于其开放的插件生态系统。作为一名Java开发者,你是否曾想过为IDEA添加一个能提升自己工作效率的专属工具?本文将带你从零开始&…...
低功耗电源开关电路设计与MCU控制实现
1. 经典电源开关电路设计与分析1.1 系统架构概述该电源开关电路采用三级晶体管控制架构,实现以下核心功能:低功耗待机模式(静态电流<10μA)按键触发启动机制MCU控制的自锁功能软件可控的电源关断系统工作电压为9V输入ÿ…...
如何用Marker实现PDF到Markdown的精准转换?三个技巧提升文档处理效率
如何用Marker实现PDF到Markdown的精准转换?三个技巧提升文档处理效率 【免费下载链接】marker 一个高效、准确的工具,能够将 PDF 和图像快速转换为 Markdown、JSON 和 HTML 格式,支持多语言和复杂布局处理,可选集成 LLM 提升精度&…...
中兴光猫配置解密工具:轻松破解网络限制,完全掌控家庭网络
中兴光猫配置解密工具:轻松破解网络限制,完全掌控家庭网络 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否遇到过想要修改光猫设置却找不到入…...
QobuzDownloaderX-MOD:一站式高品质音乐下载解决方案
QobuzDownloaderX-MOD:一站式高品质音乐下载解决方案 【免费下载链接】QobuzDownloaderX-MOD Downloads streams directly from Qobuz. Experimental refactoring of QobuzDownloaderX by AiiR 项目地址: https://gitcode.com/gh_mirrors/qo/QobuzDownloaderX-MOD…...
智能汽车远程诊断怎么玩?深入聊聊DoIP协议里的那些‘暗号’:VIN、EID、激活线与安全
智能汽车远程诊断的通信密码:DoIP协议中的VIN、EID与安全设计解析 当你的爱车亮起故障灯时,4S店技师只需轻点平板电脑,就能远程读取车辆状态——这背后是车载以太网诊断协议(DoIP)在发挥作用。不同于传统CAN总线诊断,基于IP网络的…...
Zotero插件Ethereal Style:打造高效文献管理新体验
Zotero插件Ethereal Style:打造高效文献管理新体验 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学者。 项目地址: ht…...
