MQTT协议--技术文档--搭建mqtt服务器--《EMQX单体服务器部署》

news2025/1/22 12:30:33

产品概览 | EMQX 5.1 文档

什么是EMQX?

EMQX 是一款开源 (opens new window)的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条,单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息,并保证延迟在亚毫秒级。

EMQX 支持多种协议,包括 MQTT (3.1、3.1.1 和 5.0)、HTTP、QUIC 和 WebSocket 等,保证各种网络环境和硬件设备的可访问性。EMQX 还提供了全面的 SSL/TLS 功能支持,比如双向认证以及多种身份验证机制,为物联网设备和应用程序提供可靠和高效的通信基础设施。

内置基于 SQL 的规则引擎 (opens new window),EMQX 可以实时提取、过滤、丰富和转换物联网数据。此外,EMQX 采用了无主分布式架构,以确保高可用性和水平扩展性,并提供操作友好的用户体验和出色的可观测性

architecture_image

优势

超大规模(opens new window)

EMQX 5.0 单集群可支持 MQTT 并发连接数高达 1 亿条。

高性能

单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息。

低延时

近乎实时的信息传递,保证延迟在亚毫秒级。

全面支持 MQTT 5.0 标准(opens new window)

100% 符合 MQTT 5.0 和 3.x 标准,具有更好的可扩展性、安全性和可靠性。

高可用(opens new window)

通过无主节点分布式架构实现高可用和水平扩展性。

云原生(opens new window)

通过 Kubernetes Operator 和 Terraform,可以轻松地在企业内部和公共云中进行部署

产品对比

EMQX 有 4 种部署模式,包括两种云服务模式(EMQX Cloud Serverless 和 EMQX Cloud 专有版)和两种自托管模式(EMQX 开源版 和 EMQX 企业版)

主要特性云服务模式自托管模式
EMQX Cloud ServerlessEMQX Cloud 专有版EMQX 开源版EMQX 企业版
免费使用 Serverless14 天免费试用立即下载免费试用
可扩展性自动扩展,最多 1,000 条连接无限制单集群支持 MQTT 并发连接数高达 1 亿条单集群支持 MQTT 并发连接数高达 1 亿条
吞吐量1000 TPS> 500 万 MQTT 消息每秒> 500 万 MQTT 消息每秒> 500 万 MQTT 消息每秒
延迟1~5 毫秒1~5 毫秒1~5 毫秒1~5 毫秒
数据集成(开箱即用)不支持支持 40 多种数据集成,包括 Webhook、MQTT 数据桥接、MySQL、PostgreSQL、Kafka、MongoDB、Oracle 等。支持 Webhook 和 MQTT 数据桥接支持 40 多种数据集成,包括 Webhook、MQTT 数据桥接、MySQL、PostgreSQL、Kafka、MongoDB、Oracle 等。
MQTT 5.0 Broker

MQTT over QUIC

MQTT 扩展

多协议网关

Schema Registry

消息编解码

规则引擎

文件传输

故障排查

Cloud-Native & K8sN/AN/A

SLA 等级99.9%99.99%N/AN/A
LicenseSaaS 模式,按需计费SaaS 模式,按小时计费Apache Version 2.0商业许可证(商业源代码许可证)
技术支持5x8 全球支持7x24 全球支持开源社区7x24 全球支持

Docker部署

准备工作:

挂载数据卷的文件夹,可以使用以下命令在 /usr/local/docker/emqx 目录下创建三个文件夹

mkdir -p /usr/local/docker/emqx/{bin,etc,lib,data,log}

给文件夹赋予权限:

chmod 777 /usr/local/docker/emqx/data
chmod 777 /usr/local/docker/emqx/etc
chmod 777 /usr/local/docker/emqx/log
chmod 777 /usr/local/docker/emqx/bin
chmod 777 /usr/local/docker/emqx/lib
chmod -R 777 /usr/local/docker/emqx

通过 Docker 运行单个 EMQX 节点

免费下载、试用 EMQ 产品

如果需要开源版或者其他版本的话在上面连接中。

1、运行以下命令获取 Docker 镜像

docker pull emqx/emqx:5.1.3

 

2、运行以下命令启动 Docker 容器

1、不挂载数据卷启动容器

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.1.3

2、将临时EMQX容器的文件目录拷贝到服务器上

docker cp emqx:/opt/emqx/bin /usr/local/docker/emqx
docker cp emqx:/opt/emqx/etc /usr/local/docker/emqx
docker cp emqx:/opt/emqx/lib /usr/local/docker/emqx
docker cp emqx:/opt/emqx/data /usr/local/docker/emqx
docker cp emqx:/opt/emqx/log /usr/local/docker/emqx

3、删除临时emqx容器

docker rm -f emqx

 使用如下代码:

docker run -d --restart=always  --privileged=true  --name emqx \
-p 1883:1883 \
-p 8081:8081 \
-p 8083:8083 \
-p 8084:8084 \
-p 8883:8883 \
-p 18083:18083 \
-v /usr/local/docker/emqx/bin:/opt/emqx/bin \
-v /usr/local/docker/emqx/etc:/opt/emqx/etc \
-v /usr/local/docker/emqx/lib:/opt/emqx/lib \
-v /usr/local/docker/emqx/data:/opt/emqx/data \
-v /usr/local/docker/emqx/log:/opt/emqx/log \
emqx/emqx:5.1.3

代码解释: 

docker run -d             # 以守护模式运行容器
  --name emqx             # 设置容器的名称为 "emqx"
  -p 1883:1883            # 将容器内的 1883 端口映射到主机的 1883 端口
  -p 8083:8083            # 将容器内的 8083 端口映射到主机的 8083 端口
  -p 8084:8084            # 将容器内的 8084 端口映射到主机的 8084 端口
  -p 8883:8883            # 将容器内的 8883 端口映射到主机的 8883 端口
  -p 18083:18083          # 将容器内的 18083 端口映射到主机的 18083 端口
  -v /usr/local/docker/emqx/data:/opt/emqx/data   # 将主机上的 /usr/local/docker/emqx/data 文件夹挂载到容器内的 /opt/emqx/data 文件夹
  -v /usr/local/docker/emqx/etc:/opt/emqx/etc     # 将主机上的 /usr/local/docker/emqx/etc 文件夹挂载到容器内的 /opt/emqx/etc 文件夹
  -v /usr/local/docker/emqx/log:/opt/emqx/log     # 将主机上的 /usr/local/docker/emqx/log 文件夹挂载到容器内的 /opt/emqx/log 文件夹
  emqx/emqx:5.1.3         # 指定要使用的镜像的名称和标签为 "emqx/emqx:5.1.3"

 

有关EMQX的镜像网址:https://hub.docker.com/_/emqx

 测试连接

ip地址+18083初始密码

账号admin

密码public

通过 Docker Compose 构建 EMQX 集群

Docker Compose 是一个用于编排和运行多容器的工具

提示

目前 Docker Compose 已经包含在 Docker 安装包中无需单独安装,如果您的 Docker 中没有包含 Compose 请参考 Install Docker Compose (opens new window)进行安装。

官方搭建集群链接:分布式集群介绍 | EMQX 5.1 文档

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

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

相关文章

前端开发工具及环境配置

1.前端开发环境node npm环境配置 第一步:打开Download | Node.js (nodejs.org)下载,解压。 找到下载压缩包进行解压 解压到D盘目录下: 第二步:配置环境变量:右击此电脑点击属性进入高级系统设置 点击高级系统设置进入…

泛微E8配置自定义触发流程失败

在新公司接了个配置泛微流程触发的活。因为泛微的官方文档并没有详细的操作指引,在测试环境配置之后、要触发的流程可以手工提交,但是触发一直不成功。简单记录下业务场景和其他处理信息,以供参考。 应用版本 目前使用了泛微 E8 &#xff0…

无涯教程-Perl - warn函数

描述 此函数将LIST的值打印到STDERR。基本上与die函数相同,除了不对出口进行任何调用并且在eval语句内不引发异常。这对于引发错误而不导致脚本过早终止很有用。 如果变量$包含一个值(来自先前的eval调用),并且LIST为空,则$的值将以。\t.caught打印。附加到末尾。如果$和LIST…

GPT-4一纸重洗:从97.6%降至2.4%的巨大挑战

斯坦福大学和加州大学伯克利分校合作进行的一项 “How Is ChatGPTs Behavior Changing Over Time?” 研究表明,随着时间的推移,GPT-4 的响应能力非但没有提高,反而随着语言模型的进一步更新而变得更糟糕。 研究小组评估了 2023 年 3 月和 20…

为AI而生的数据库:Milvus详解及实战

1 向量数据库 1.1 向量数据库的由来 在当今数字化时代,人工智能AI正迅速改变着我们的生活和工作方式。从智能助手到自动驾驶汽车,AI正在成为各行各业的创新引擎。然而,这种AI的崛起也带来了一个关键的挑战:如何有效地处理和分析…

lama-cleaner:基于SOTA AI 模型Stable Diffusion驱动的图像修复工具

介绍 由 SOTA AI 模型提供支持的图像修复工具。从照片中删除任何不需要的物体、缺陷、人物,或擦除并替换(由Stable Diffusion驱动)照片上的任何东西。 特征 1.多种SOTA AI模型 擦除模型:LaMa/LDM/ZITS/MAT/FcF/Manga 擦除和替…

Spring的生命周期及Spring Bean单例和多例---超详细教学

一,何为spring生命周期 一个Bean对象从被Spring容器创建到被销毁的整个过程。Spring框架对Bean对象的生命周期进行了管理,提供了灵活性和控制权,让开发人员能够在不同的阶段进行自定义操作 1.1生命周期图 1.2.为什么要学习对象的生命周期…

source insight 添加宏-文件头加注释

source insight 3.5 自带的一些宏,在安装目录下的 utils.em 文件中,用户也可以自己写文件,命令为xxx.em ,然后把这个文件添加到项目中即可,添加后在菜单栏 Options -> Key Assignments 里输入macro 就能显示新添加的…

【校招VIP】产品分析之策略量化分析

考点介绍: 产品的设计和迭代需要通过数值来进行分析,那么如何去制定一个数值策略,区分好坏的情况,就会非常的重要。属于数据量化的范畴。 『产品分析之策略量化分析』相关题目及解析内容可点击文章末尾链接查看! 一、…

解决微信消息接收问题,原来只需设置这三个地方,让你涨知识

在日常使用微信的过程中,你是否曾经遇到过无法接收消息或消息延迟的问题?如果是的话,别着急!今天,我们将为你揭示解决这个问题的简单方法,原来只需设置这三个地方,让你的微信恢复正常运行。 首先…

openGauss学习笔记-43 openGauss 高级数据管理-事件触发器

文章目录 openGauss学习笔记-43 openGauss 高级数据管理-事件触发器43.1 语法格式43.2 参数说明43.3 示例 openGauss学习笔记-43 openGauss 高级数据管理-事件触发器 触发器会在指定的ddl事件发生时自动执行函数。目前事件触发器仅在PG兼容模式下可用。 43.1 语法格式 创建事…

【Java 动态数据统计图】动态数据统计思路案例(动态,排序,数组)二(113)

需求&#xff1a; 有一个List<Map<String.Object>>,存储了区域的数据&#xff0c; 数据是根据用户查询条件进行显示的&#xff1b;所以查询的数据是动态的&#xff1b;按区域维度统计每个区域出现的次数&#xff0c;并且按照次数的大小排序&#xff08;升序&#…

在线零售供应链管理:从0到100

全球57%的公司将其供应链视为竞争优势&#xff0c;然而只有6%的人表示完全了解它。无论您是首次在线卖家还是经验丰富的专业人士&#xff0c;驾驭管理高效且具有成本效益的零售供应链的复杂性都可能具有挑战性。一起来了解一下吧&#xff01; 供应链管理是什么&#xff1f;它基…

【LeetCode75】第三十一题 反转链表

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 最经典的链表题&#xff0c;没有之一&#xff01;&#xff01;&#xff01; 强烈建议直接把模板记住&#xff01;&#xff01;&#xf…

FairyGUI编辑器自定义菜单扩展插件

本文涉及到的软件有&#xff1a;FairyGUI&#xff0c;VSCode 代码环境涉及到了&#xff1a;Lua VSCode插件&#xff1a;EmmyLua 在编写FairyGUI编辑器菜单前&#xff0c;了解一下FairyGUIEditor的API会有效的帮助我们解决很多问题。FairyGUI的扩展是通过编辑器自带的插件功能…

sed 语法和基础命令

1. 准备工作 准备备一个数据文件data.txt&#xff0c;内容如下&#xff1a; 101,Zhang san,Fu Jian 102,Li si,Shan Dong 103,Wang Wu,Bei Jing 104,Zhao Qian Sun,Zhe Jiang 105,Ge Lin,Shang Hai 每一行为一条数据&#xff0c;每条数据包含三个元素&#xff1a;ID&#xf…

薪资涨幅1000%+,转行学Java后,他彻底开挂了

以下为学长故事的文字版&#xff1a; 哈喽黑马程序员的学员们大家好&#xff0c;我是17级毕业的学长陈同学&#xff0c;很高兴和大家分享我的转行故事。 来黑马前后的变化 我刚毕业是去了浙江的一个电力公司&#xff0c;做电器的一个项目&#xff0c;这个项目一共工作了半年…

PIN TO PIN替代LT8911EXB|CS5523低成本替代LT8911EXB|MIP DSI转DP EDP方案设计

PIN TO PIN替代LT8911EXB|CS5523低成本替代LT8911EXB|MIP DSI转DP EDP方案设计 LT8911EXB是MIPI DSI/CSI 转eDP转换芯片&#xff0c;ASL CS5523不需要改电路就可以直接PIN TO PIN替代与兼容LT8911EXB。 ASL CS5523与 LT8911EXB的功能与参数&#xff0c;用途方式以及封装方式和…

《TCP IP网络编程》第十八章

第 18 章 多线程服务器端的实现 18.1 理解线程的概念 线程背景&#xff1a; 第 10 章介绍了多进程服务端的实现方法。多进程模型与 select 和 epoll 相比的确有自身的优点&#xff0c;但同时也有问题。如前所述&#xff0c;创建&#xff08;复制&#xff09;进程的工作本身会…