当前位置: 首页 > news >正文

【物联网】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&#xf…...

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 文件中项目描述

目录&#xff1a; 定义项目的信息 本项目描述相关标签<parent> 标签<relativePath/> 标签<scope> 标签 Maven 三种打包方式 JARWARPOM 原文链接 — —...

【普中】基于51单片机简易计算器数码管显示设计( proteus仿真+程序+实物演示+讲解视频)

【普中开发板】基于51单片机简易计算器数码管显示设计( proteus仿真程序实物演示讲解视频&#xff09; Proteus 仿真&#xff1a;Proteus 8.16(有低版本) 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;P04 1. 主要功能&#xff1a…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

游戏开发中常见的战斗数值英文缩写对照表

游戏开发中常见的战斗数值英文缩写对照表 基础属性&#xff08;Basic Attributes&#xff09; 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...