阿里云mqtt服务器搭建,个人服务器搭建
搭建自己的IOT服务器平台——EMQ
EMQ简介
EMQ,一个开源MQTT服务器,支持百万级并发连接,全协议,易于部署在多种操作系统上,支持扩展插件。EMQ适应物联网需求,提供可靠的数据传输。
EMQ安装
选择Windows平台搭建EMQ服务器,下载安装EMQ。
搭建环境
下载并解压EMQ,配置路径,使用命令行启动服务。若遇到错误“找不到MSVCR120.dll”,下载并运行DirectX修复工具解决。
启动后,输入`emqx_ctl status`检查服务器状态。
EMQ Web管理控制台
启动后默认加载Dashboard插件,提供服务器状态、数据统计、客户端管理等功能。访问`127.0.0.1:18083`或``,输入默认用户名密码登录。
修改语言设置,优化用户体验。
防火墙设置
若需公网访问,需在阿里云服务器管理控制台添加防火墙规则,开通18083端口。
订阅与发布测试
使用MQTT.fx连接EMQ服务器,配置连接参数,成功连接后,通过管理后台查看设备在线状态。
Websocket连接
增加Websocket连接设备,通过EMQ管理后台工具,实现与MQTT.fx数据通讯。
通信测试
两个设备订阅相同主题,通过MQTT.fx与EMQ Websocket工具进行数据传输测试。
总结
EMQ服务器搭建完成,实现了客户端数据通信。进一步的高级功能如身份认证、规则引擎、数据持久化等将在后续内容中详细讲解。感谢阅读。
我的物联网项目(三十六) 自己搭建MQTT服务器
轻量、发布订阅模式的物联网消息协议MQTT在物联网平台中扮演着重要角色。在公司发展的初期,为了加快步伐并利用现有成熟组件,我们选择了阿里云作为服务器和服务提供商,包括MQTT服务。通过阿里云提供的可视化管理平台,我们获得了便捷的接入体验。然而,随着物联网设备的增多,阿里云的MQTT服务在垂直扩展上的费用问题日益凸显。因此,基于成本控制的考量,我们决定自建MQTT集群,利用廉价服务器进行水平扩展以应对日益增长的设备需求。下图展示了公司使用阿里云MQTT服务费用的增长趋势。
鉴于此,我们开始转向EMQ这款百万级分布式开源MQTT消息服务器,它是物联网领域一个广受欢迎的选择。EMQ的官网提供丰富的资料与介绍,我们决定尝试构建一个简单的集群进行测试。以下为我们的准备与实施过程。
软件与服务器准备
我们选择了NGINX与EMQ作为主要组件。NGINX版本为1.11.0,EMQ版本为emqx-centos6.8-v3.0-beta.4.x86_64.rpm。服务器配置为三台:192.168.1.1为NGINX负载均衡服务器,192.168.1.2与192.168.1.3分别作为EMQ服务器1与服务器2。
安装EMQ
在每台服务器上安装EMQ并确保Erlang/OTP R19与lksctp-tools库的依赖关系得到满足。配置文件目录包括EMQ配置文件、插件配置文件、日志文件与数据文件目录。此外,我们需在emqx.conf文件中修改四个关键配置项:节点名称、集群方式(采用基于静态节点列表的自动集群)、集群节点配置与用户名密码认证。EMQ提供了多种认证插件,我们采用简单账号密码认证方式,并在emqx_auth_username.conf文件中进行相应配置。最后,通过命令启动EMQ集群。
安装NGINX
在NGINX负载均衡服务器上安装NGINX,并确保在编译过程中开启与TCP转发相关的模块。接着,配置NGINX负载均衡功能,使得所有EMQ节点共享同一入口,确保即使部分EMQ节点不可用,NGINX也能继续提供服务。
EMQ管理控制台
通过以下地址访问EMQ管理控制台:192.168.1.1:18083(或通过域名:test.abc.com:18083),默认用户:admin,密码:public。这提供了对EMQ集群的集中管理与监控。
EMQ部署架构
最终,我们构建了一个基于NGINX负载均衡与EMQ集群的物联网消息传输架构。NGINX作为入口点,负责转发消息至EMQ集群中的任意一个节点,确保服务的高可用性与负载均衡。通过EMQ管理控制台,我们能够对集群进行有效的管理和监控,确保物联网设备之间的通信流畅、高效。
阿里云mqtt收费标准
以下是阿里云mqtt收费标准:
其中铂金版实例、标准版实例、轻量版实例是包年包月(预付费)。是一种预付费模式,即先付费再使用。一般适用于业务量较大且长期运行的场景,通过包年包月付费方式您可以提前预留资源,同时享受更大的价格优化,帮您最大程度节省成本。
还有就是按量付费实例是按量付费(后付费)。即是一种后付费模式,即先使用再付费。一般适用于业务流量波峰波谷差异明显或临时测试的场景,可以有效避免资源浪费。
微消息队列mqtt版费用组成:
按量付费包括:同时在线连接数;消息收发量;订阅关系数
包年包月包括:连接数上限;消息TPS上限;订阅关系数上限
计价倍率介绍:
MQTT协议QoS=0且cleanSession=true 1
MQTT协议QoS=0且cleanSession=false 1
MQTT协议QoS=1且cleanSession=true 2
MQTT协议QoS=1且cleanSession=false 5
MQTT协议QoS=2且cleanSession=true 5