小火箭网络加速节点
采用华为云最新推出的Flexus云服务器X实例EMQX服务器,搭建MQTT服务器,完成设备上云,实现物联网产品开发
随着物联网(IoT)技术的快速发展,越来越多的企业和个人开始探索如何将智能设备连接到云端,以便更有效地收集数据、监控状态以及远程控制。在这个过程中,消息队列遥测传输协议(MQTT)作为一种轻量级的消息传递协议,因其低带宽消耗、可靠的消息传递机制以及简单的架构而被广泛采用。为了满足这一需求,华为云推出了高性能的Flexus云服务器X实例,并且与EMQX这样的专业MQTT服务相结合,为企业提供了一个稳定且可扩展的平台来构建自己的物联网解决方案。
本文为开发者们提供一个详尽的指南,指导如何利用华为云最新的Flexus云服务器X实例结合EMQX MQTT代理软件,快速搭建起一个高效稳定的MQTT服务器环境。通过这个过程,不仅能够了解到选择合适云服务的重要性,还将学习到从环境配置到安全设置等一系列关键步骤。最终,将展示如何通过这一体系结构成功地将物理世界中的设备连接至云端,从而开启无限可能的物联网应用领域。
华为云Flexus云服务器X实例是由国家科技进步奖获得者、华为公司Fellow及华为云首席架构师顾炯炯牵头研发的一款创新性云服务器。该实例基于华为的擎天QingTian架构、瑶光云脑和盘古大模型等核心技术,是业界首款应用驱动的柔性算力云服务器,适用于高科技、零售、金融、游戏等多个行业的通用工作负载场景,如网络应用、数据库、虚拟桌面、分析索引、微服务及持续集成/持续部署(CI/CD)等。
传统的云服务器通常只提供固定的CPU和内存规格,无法精准匹配用户的实际资源需求,导致资源利用效率低下。相比之下,华为云Flexus X实例提供了更为灵活的算力配置,支持超过100种不同的CPU与内存配比,最高可达到3:1的比例,从而更好地适应各种业务应用的需求。
Flexus X实例不仅在性能方面表现出色,还内置了智能应用调优算法,结合华为技术专家多年积累的经验,在基础模式下,其GeekBench单核及多核跑分可达业界同规格独享型实例的1.6倍。在性能模式下,Flexus X实例的性能超过了同类C系/G系/R系及S系旗舰型云主机的标准。
Flexus X实例还配备了X-Turbo加速技术和大模型底层智能调度技术,为关键业务应用提供加速功能。例如,在Flexus X实例上部署的MySQL、Redis和Nginx等应用,其性能最高可达业界同规格独享型实例的6倍(MySQL性能),长期运行时也能保持2倍的性能优势。
Flexus X实例在定价策略上定位于经济型级别,但其性能表现却超越了旗舰级云主机。通过动态业务画像规格优化等技术,用户在将业务从本地服务器或其他云服务提供商迁移到Flexus X实例时,可以节省高达30%的算力成本,从而实现业务的全面提速和效能提升,享受到云基础设施的显著改进体验。
EMQX,全称为Erlang/Enterprise Middleware MQTT Broker,是一款基于Erlang/OTP平台开发的开源物联网消息中间件。它专为大规模物联网应用设计,能够处理海量并发连接,并提供稳定的消息发布/订阅服务。作为一款高性能的MQTT协议服务器,EMQX不仅支持标准的MQTT v3.1、v3.1.1以及最新的v5.0版本协议,还提供了丰富的扩展功能来满足不同场景下的需求。
EMQX的核心优势在于其卓越的性能表现和高度可伸缩性。单个EMQX集群可以轻松管理数百万级别的设备连接,同时保持低延迟的消息传递能力。这使得EMQX成为构建大型物联网系统时的理想选择之一。此外,通过灵活配置规则引擎,用户可以根据业务逻辑定制化处理接收到的数据流,实现复杂事件处理、数据转换等功能。例如,当特定条件被触发时,可以自动执行预设的动作或将信息转发给其他系统进行进一步分析。
安全性方面,EMQX支持多种认证机制如用户名密码验证、客户端证书验证等,以确保只有授权用户才能访问敏感资源;同时也提供了TLS/SSL加密通信能力,保障了数据传输过程中的安全性和完整性。对于需要严格遵守行业标准的企业来说,这些特性尤为重要。
在集成度方面,EMQX展现了极高的灵活性与兼容性。无论是与其他数据库系统的对接(如MySQL, PostgreSQL, MongoDB等),还是与各种云服务提供商(如阿里云、AWS)的无缝衔接,EMQX都能很好地适应并促进整个生态系统的健康发展。EMQX还配备了详细的文档资料和技术支持服务,帮助开发者快速上手并解决遇到的问题。
在官网首页的轮播图里可以看到,有Flexus云服务器的宣传。这是华为云匠心打造的下一代跃级产品,面向中低负载场景,性能倍增、体验跃级的服务器。
在选购页面可以看到服务器推广器件,1年36块钱。 每个月的流量是100G,对于一些访问量不高的服务器或者测试用是非常合适的。
当前我要选择的服务器是:Flexus云服务器X实例 ,点击Flexus系列产品,选择X实例。Flexus云服务器X实例符合:柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。
针对时延敏感型业务请选择靠近您业务的区域,以降低网络时延,提高访问速度;针对和存量云产品有内网互通需求的业务,请选择和存量产品相同的区域。
我这选择ubuntu系统,用来搭建服务器。这个根据自己的情况选择,自己适合那一种就选择哪一种。
EMQX 支持通过 Apt 源安装,免除了用户需要手动处理依赖关系和更新软件包等的困扰,具有更加方便、安全和易用等优点。
EMQX 提供了一个内置的管理控制台,即 EMQX Dashboard。方便用户通过 Web 页面就能轻松管理和监控 EMQX 集群,并配置和使用所需的各项功能。
第一次登录会提示你修改新密码,如果不想设置,也可以选择跳过(公网服务器部署,还是要修改密码安全些)。
连接之后,然后点击订阅,和发布,如果下面消息能正常的接收。说明MQTT服务器通信是已经正常,没问题了。
说明: 目前还没有配置客户端认证,现在只要IP和端口输入正确,MQTT三元组可以随便输入,都可以登录上服务器的,服务器没有对三元组做校验。
EMQ X 默认配置中启用了匿名认证,任何客户端都能接入 EMQX。没有启用认证插件或认证插件没有显式允许/拒绝(ignore)连接请求时,EMQX 将根据匿名认证启用情况决定是否允许客户端连接。
EMQX 默认配置中启用了匿名认证,任何客户端都能接入 EMQX。没有启用认证插件或认证插件没有显式允许/拒绝(ignore)连接请求时,EMQX 将根据匿名认证启用情况决定是否允许客户端连接。
登录的时候,MQTT用户名和密码必须输入正确,按照上一步添加的信息进行如实填写,否则是无法登录服务器的。
客户端授权页面可以配置每个客户端(设备)的主题发布,订阅权限。限制它是否可以发布主题,订阅主题。 如果有需要就可以进行配置。
在集成选项里,可以对设备数据处理。 比如:转发到自己的HTTP服务器,转发到自己其他的MQTT服务器,创建规则,某些事件触发某些动作等等。
为了方便测试设备间互相订阅主题,数据收发,在客户端认证页面至少添加2个设备。我这里分别添加了test1和test2。
上位机也可以采用MQTT协议接入服务器,订阅设备的主题,就可以实时接收设备的消息(当然,也可以采用HTTP协议接入)。
EMQX支持将设备上传的数据转发到其他地方,比如,自己的HTTP服务器。方便自己服务器进行其他的处理。
通过数据桥接,用户可以实时地将消息从 EMQX 发送到外部数据系统,或者从外部数据系统拉取数据并发送到 EMQX 的某个主题。而 EMQX Dashboard 提供了可视化创建数据桥接的能力,只需在页面中配置相关资源即可。
本章节就介绍如何搭建自己的HTTP服务器。配置EMQX转发数据到自己的HTTP服务器,保存处理数据。
我这里直接使用python写代码搭建一个HTTP服务器。 ECS服务器上默认没有安装python3,需要先安装一下。
这段代码创建了一个使用 Flask 框架的 Web 服务器,可以接收根路径的 POST 请求。当接收到 POST 请求时,服务器会将请求的数据打印到终端,并返回一个 JSON 格式的响应给客户端。服务器将在本地运行,并监听默认的 8000 端口。
在命令行中执行 python3 server.py,就可以启动一个简单的HTTP服务器,可以接收并处理POST请求。当有POST请求发生时,服务器将返回收到的POST数据。可以根据自己的需要,进一步扩展处理POST请求的逻辑。
运行示例:(代码可以在本地写好上传到服务器,也可以直接 vim server.py 打开编辑器直接编写 )
使用 Webhook 其实就是将 EMQX 接收并处理后的数据发送到一个 HTTP 服务上,再根据预设好的 HTTP 服务来处理和集成业务数据。
同样用户需要有一个预先搭建好的 HTTP 服务,需要在配置信息页面填写 HTTP 请求的服务地址,选择一个请求方法 POST、GET、PUT 或 DELETE,配置请求头,将需要发送的数据使用模板语法填写到请求体(body)中即可。
设备端:就是硬件端。采集本地传感器的数据上传到服务器,或者接收服务器下发的指令完成某些控制。
比如:STM32 + ESP8266 + 各种传感器 就是一个硬件设备端。 可以通过ESP8266联网上传数据。
服务器:也就是MQTT服务器端,比如: 自己采用EMQX搭建的MQTT服务器,或者采用阿里云、华为云、OneNet这些平台的IOT服务器。
上位机:上位机就是给用户使用的,用于远程控制设备,查看设备。 比如:微信小程序、手机APP、电脑上位机、web网页端等等。
那么这个章节,就介绍利用EMQX提供的API接口与MQTT客户端设备进行通信,完成数据上传,命令下发等功能,可以利用此接口完成上位机的开发。
EMQX 服务启动后,可以访问 来查看 API 的文档。还可以直接在 Swagger UI 上尝试执行一些 API。
上一步已经创建好API的访问密匙,这里就以 获取节点信息为例,调用获取节点信息的API接口,获取节点 信息。
接下来就用python写一份代码,测试一下接口是否可以正常访问。 python代码直接放服务器运行(主要是我本地没有安装python环境,云服务器的环境是已经安装OK的,测试方便)。
在这里双击要编辑的文件,就可以打开文件进行编辑。默认采用内置的编辑器,也可以选择自己电脑上的外置编辑器。
【4】代码编辑完成,按下键盘快捷键Ctrl + S 保存文件内容,保存之后文件内容会自动同步到服务器。
在编写代码之前,可以先测试下API接口的效果,可以直接在Swagger UI界面直接调试API。
这个用户名和密码就是前面创建API密匙生成的API Key(用户名) 和 Secret Key(密码) 。
并且在页面上也写出了,请求的信息。使用curl命令行给出详细的请求过程,参考这个就可以自己写代码了。
API里也支持发布主题,利用HTTP协议发布主题消息,如果设备端订阅了该主题,就可以收到API接口发布的消息。
topic就是发布的主题。 payload 就是发布的消息内容。 只要MQTT客户端订阅了这个主题,就可以收到发布的消息。
华为云正在举行其备受期待的年度828 B2B企业节活动,这是一场专为企业用户打造的技术盛宴。在这次活动中,华为云提供了包括最新推出的Flexus X实例在内的多种产品的特别优惠,为寻求高性能计算资源的企业带来了难得的机会。对于那些对计算性能有较高要求,并且需要自行部署如MySQL数据库、Redis缓存服务以及Nginx反向代理等关键应用的企业来说,这次促销无疑是一个绝佳的选择。
Flexus X实例以其卓越的处理能力和稳定性著称,能够满足各种复杂业务场景下的需求,无论是大规模数据处理还是高并发访问的应用都能轻松应对。此外,华为云还提供了丰富的云上工具和服务,帮助企业快速搭建和优化自己的IT基础设施,降低运维成本的同时提升整体效率小火箭网络加速节点。
此次活动不仅限于产品折扣,还包括了一系列增值服务和技术支持,帮助企业充分利用云计算的优势加速数字化转型的步伐。从新用户注册礼包到现有用户的升级优惠,再到针对特定行业的解决方案定制,华为云力求通过全方位的支持助力每一位客户实现商业目标。

