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

产品概览 | 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.hqwc.cn/news/69331.html

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

相关文章

读书笔记 |【项目思维与管理】➾ 顺势而动

读书笔记 |【项目思维与管理】➾ 顺势而动 一、企业步入“终结者时代”二、过去成功的经验也许是最可怕的三、做好非重复性的事四、适应客户是出发点五、向知识型企业转变六、速度是决胜条件 💖The Begin💖点点关注,收藏不迷路💖 …

React 之 Suspense和lazy

一. Suspense 参考链接&#xff1a;https://react.docschina.org/reference/react/Suspense suspense&#xff1a;n. 焦虑、悬念 <Suspense> 允许你显示一个退路方案&#xff08;fallback&#xff09;直到它的所有子组件完成加载。 <Suspense fallback{<Loadin…

在Centos环境中搭建Nginx环境

一、Nginx概念简介 Nginx是一个轻量级的高性能HTTP反向代理服务器&#xff0c;同时它也是一个通用类型的代理服务器&#xff0c;支持绝大部分协议&#xff0c;如TCP、UDP、SMTP、HTTPS等。 Nginx与redis相同&#xff0c;都是基于多路复用模型构建出的产物&#xff0c;因此它与R…

【linux】2 软件管理器yum和编辑器vim

目录 1. linux软件包管理器yum 1.1 什么是软件包 1.2 关于rzsz 1.3 注意事项 1.4 查看软件包 1.5 如何安装、卸载软件 1.6 centos 7设置成国内yum源 2. linux开发工具-Linux编辑器-vim使用 2.1 vim的基本概念 2.2 vim的基本操作 2.3 vim正常模式命令集 2.4 vim末行…

Vue-8.集成(.editorconfig、.eslintrc.js、.prettierrc)

介绍 同时使用 .editorconfig、.prettierrc 和 .eslintrc.js 是很常见的做法&#xff0c;因为它们可以在不同层面上帮助确保代码的格式一致性和质量。这种组合可以在开发过程中提供全面的代码维护和质量保证。然而&#xff0c;这也可能增加一些复杂性&#xff0c;需要谨慎配置…

【算法题】螺旋矩阵II (求解n阶Z形矩阵)

一、问题的提出 n阶Z形矩阵的特点是按照之(Z)字形的方式排列元素。n阶Z形矩阵是指矩阵的大小为nn&#xff0c;其中n为正整数。 题目描述 一个 n 行 n 列的螺旋(Z形)矩阵如图1所示&#xff0c;观察并找出填数规律。 图1 7行7列和8行8列的螺旋(Z形)矩阵 现在给出矩阵大小 n&…

VUE+ElementUI的表单验证二选一必填项,并且满足条件后清除表单验证提示

上代码 <el-form-item label"出库单号" prop"ecode" ref"ecode" :rules"rules.ecode"><el-input v-model"queryParams.ecode" placeholder"出库单号和出库箱号至少填写一项" clearable style"width…

学习ts(二)数据类型(接口和对象类型、数组类型)

interface 重名会重合到一起 如果两个interface名称相同&#xff0c;会把两个合到一起 重复定义同一个需要类型相同 不能多或者减少属性 设置任意key 当定义接口返回数据时&#xff0c;我们不确定接口会返回多少&#xff0c;知道所需要的固定属性&#xff0c;其余属性可以…

基于JSP的毕业生就业信息管理系统实战-lw(源码)

系列文章目录 基于jspm在线教育资源管理系统-毕设 文章目录 系列文章目录前言一、主要技术jsp技术Mysql数据库SSM三大框架1.Spring的优势:2.Spring MVC的优势:3.Mybatis的优势: 二、系统设计三、功能截图总结 前言 当前&#xff0c;高校毕业生就业工作的重要性不可忽视&#x…

Day 29 C++ STL- 函数对象(Function Object)(仿函数)

文章目录 函数对象概念概念本质 函数对象使用特点示例 谓词——返回bool类型的仿函数谓词概念一元谓词——operator()参数只有一个的谓词二元谓词——operator()参数只有俩个的谓词 内建函数对象&#xff08;Builtin Function Objects&#xff09;内建函数对象概念注意算术仿函…

大数据:Numpy基础应用详解

Numpy基础应用 Numpy 是一个开源的 Python 科学计算库&#xff0c;用于快速处理任意维度的数组。Numpy 支持常见的数组和矩阵操作&#xff0c;对于同样的数值计算任务&#xff0c;使用 NumPy 不仅代码要简洁的多&#xff0c;而且 NumPy 的性能远远优于原生 Python&#xff0c;…

设计HTML5表单

HTML5基于Web Forms 2.0标准对HTML4表单进行全面升级&#xff0c;在保持简便、易用的基础上&#xff0c;新增了很多控件和属性&#xff0c;从而减轻了开发人员的负担。表单为访问者提供了与网站进行互动的途径&#xff0c;完整的表单一般由控件和脚本两部分组成。 1、认识HTML…