开发者社区> 中间件小哥> 正文

使用MQTT与函数计算做热力图的实践

简介: 在各类场景中,关于上报数据的处理无处不在,而以上提到的场景都可以通过本方案的MQTT+FC+API Gateway的方式参考优化来实现。
+关注继续查看

作者:折松,阿里云解决方案架构师

前言


最近几年,我们在一些商场、图书馆、机场或港口环境里,经常可以看到一些机器人在转来转去,它们被大家熟知的作用是对客户进行指引服务。不仅于此,事实上,一些先行的企业也会利用机器人来收集这些人流密集地的特征数据,通过上报这些特征数据,进行快速的清洗加工处理,从而提供有意义的应对梳导措施,或者指引信息(广告)投放决策等商业上的转化。


其中有一个主要场景是统计区域的热力图,并开放给特定的系统(也在考虑开发给终端用户)进行查询加工处理。


image.png


这些机器人会在不同的时段进行按需投放,且会在采集数据有较大变化或某固定周期内进行上报。数据采集变化大的时候,上报会趋于频繁,后面的数据清洗处理任务需求也会同步增加。


我们将在本篇文章里探讨下如何在技术选型上更适合地对这类场景进行上报清洗与涉取的处理。


场景特点与要求:


1. 数据通道的连接能力:数据通道随着业务的扩展,机器人的投放也会同步增加,对于数据通道有足够的扩展灵活性,可以按需进行扩展,同时连接的级别能够支持10W+级别的扩展。


2. 简洁数据清洗的能力:对于数据的处理,本质上就是对数据的归纳统计,逻辑实现上并不复杂。对于数据本身的峰谷变化,能有最简单有效的匹配扩缩处理能力即可,在清洗上不希望为此引入复杂的传统大数据级别的笨重方案。


3. 弹性数据访问的能力:这里提到的的热力图信息,以后会考虑开放给终端用户访问,访问量都是动态变化的,随着不同的时间、节日、突发事件等都会有不可预知的幅度变化,所以在此业务中要求有弹性的访问能力。业务方不希望通过限流方式来实现,因为会对业务量本身造成影响。


4. 性能优越的存储能力:此场景下,数据写入与读取并发量都高,客户希望使用NoSQL的方式进行存储。NoSQL 类型能最好支持排序的功能,本文介绍的方案中使用Redis,不再做更多的分析介绍。


备选的技术方案分析


数据通道的连接能力


自建Kafka


优点:

  • Kafka作为通用的数据收集信息通道,使用面广泛,接入方式多样化。社区完善,学习成本低。
  • Kafka本身搭建容易,与下游的大数据处理产品协调方案成熟。


缺点:

  • 动态处理Kafka的扩容复杂。
  • 需要搭建额外处理集群的稳定性配套方案。
  • 外网网络流量管理需要配合额外的方案。
  • 主流方案是作为连接应用的收集能力,对于终端的连接能力没有规模级别的案例验证。


消息队列MQTT方案


优点:

  • 支持百万级别的连接,完成可以覆盖业务发展的诉求,为业务留足了扩展空间。
  • MQTT的协议非常简洁,在端与服务间的传输中有优势。支持各种消息触达的QoS质量。
  • 支持各种客户端接入实现语言。
  • 可实时观测客户端的连接情况,方便发现异常情况。


缺点:

  • 处理大数据的实践没有Kafka成熟,下游产品选型受一定的限制。

 

弹性数据清洗的能力


大数据方案(Storm、Spark、Flink等)


优点:

  • 开源的通用方案,资料众多,方案成熟。


缺点:

  • 搭建运维复杂,需要提供额外的监控与恢复手段。
  • 需要学习接受各种组件方式(下图是以Storm为例)。
  • 提前评估资源使用情况,无法按照实时数据量进行相应的扩缩使用。


image.pngimage.png

 

函数计算方案


优点:

  • 按需进行扩缩,百毫秒级的伸缩能力,适合数据量的脉冲峰谷变化。
  • 不需要进行清洗环境的管理。
  • 概念简单,学习成本低。
  • 其它优点参考下图:

image.png

缺点:

  • 函数计算是各个云厂商的产品。要求一定需要在云上运行。

 

弹性数据访问的能力


传统应用的方案


优点:

  • 作为业务的一部分嵌在某个应用实现中,技术成熟,学习成本低。

缺点:

  • 需要自实现根据业务请求量来进行弹缩处理,或者很多时候采用评估的方式进行资源冗余处理。


API Gateway+函数计算方案


优点:

  • 根据客户的请求量实时进行弹缩处理。按需使用,不为高峰时段烦恼,不会闲置付费。
  • 自动附带专业的访问监控大盘。

缺点:

  • 需要少量的学习成本。


综述


在这个热力图信息收集清选与访问业务中,可以参考使用下图的解决方案完美实现。

image.png


重点接入步骤


MQTT到函数计算的介绍


请参考函数计算的微消息队列MQTT服务集成方案

image.png

API网关通过函数计算提取数据的介绍


详情请参考API网关函数触发实例


以Node.js为例:

module.exports.handler = function(event, context, callback) { 
   var event = JSON.parse(event);
   var content = {
     path: event.path,
     method: event.method,
     headers: event.headers,
     queryParameters: event.queryParameters,
     pathParameters: event.pathParameters,
     body: event.body
   // 您可以在这里编写您自己的逻辑。
   // 从Redis提取数据的逻辑  
   }
   var response = {
        isBase64Encoded: false,
        statusCode: '200',
        headers: {
          'x-custom-header': 'header value'
        },
        body: content
      }; 
   callback(null, response)
};


后注


在当前DT时代,各种脉冲数据上报的仪器非常多,例如新能源汽车的传感器,公交位置上报,智能物管的开锁,智慧停车场的车位管理,无人店铺的销售等等。在各类场景中,关于上报数据的处理无处不在,而以上提到的场景都可以通过本方案的MQTT+FC+API Gateway的方式参考优化来实现。



扫码了解更多技术干货与客户案例:

image.png


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27734 0
如何在函数计算中使用 Node.js 处理 multipart 文件上传请求
web 开发中我们经常会允许用户通过 HTTP POST 请求上传文档到服务器,本文将介绍在函数计算中基于 node.js 使用 multipart form-data 来实现文件上传服务。
2781 0
使用MQTT与函数计算做热力图的实践
在各类场景中,关于上报数据的处理无处不在,而以上提到的场景都可以通过本方案的MQTT+FC+API Gateway的方式参考优化来实现。
3606 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
19982 0
ML之sklearn:sklearn的make_pipeline函数、RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略(一)
ML之sklearn:sklearn的make_pipeline函数、RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略
231 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23526 0
+关注
中间件小哥
阿里中间件(Aliware)官方账号
1140
文章
52
问答
来源圈子
更多
阿里云中间件主要有包含这么几个: 分布式关系型数据库DRDS_水平拆分 做数据库扩展性的 、消息队列MQ 是做消息的中间件、企业级分布式应用服务EDAS 做分布式服务的、还有一些其他的中间件,比如配置服务、缓存等等。
+ 订阅
相关文档: 全局事务服务GTS 分布式调度任务SchedulerX 云服务总线CSB
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载