介绍
今日,应项目需求,需要构建一个物联网平台。
要求硬件设备可以长连接用于报告自身状态和接收远程控制。手机端可以远程临时租用某设备获取设备信息及控制设备。手机端可远程查看所有设备位置用于快速寻找设备。完整需求类似于共享单车,实现短期租赁服务。
由于以往没有高并发、长连接服务器建设经验,故进行Serverless架构的研究,以成熟的云服务提供商保证设备的长连接稳定性及大量设备的负载均衡。由于对阿里云较为了解,故基于阿里云系列服务进行了调研。
各服务功能
MQTT服务器:使用“阿里云物联网套件”,实现大量设备的连接,及消息发布、订阅、转发。按照消息量进行收费。
API网关:api调用的过滤,将正确调用转发至函数计算。按照API调用量进行收费。
函数计算:Faas,实现Severless,只需要根据业务需要定义不同的函数,主要是实现API网关定义的接口。按照占用内存及运行时间计费,对于外网流量单独计费。
云数据库或Table store:实现数据存储,关系型数据库或nosql。
注意:
- api网关与数据库、函数计算与数据库、api网关与函数计算之间均进行内网通讯,可以避免通信流量费。
- api网关会将请求的所有内容整合为一个变量(event)传递到函数计算。文档
- 函数计算基于事件进行触发,也就是event,函数除了支持api网关触发,还可以定时启动,用于实现网站的定期、定时