本篇内容介绍了“如何使用MQTT与函数计算做热力图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
场景特点与要求:
1. 数据通道的连接能力:数据通道随着业务的扩展,机器人的投放也会同步增加,对于数据通道有足够的扩展灵活性,可以按需进行扩展,同时连接的级别能够支持10W+级别的扩展。
2. 简洁数据清洗的能力:对于数据的处理,本质上就是对数据的归纳统计,逻辑实现上并不复杂。对于数据本身的峰谷变化,能有最简单有效的匹配扩缩处理能力即可,在清洗上不希望为此引入复杂的传统大数据级别的笨重方案。
3. 弹性数据访问的能力:这里提到的的热力图信息,以后会考虑开放给终端用户访问,访问量都是动态变化的,随着不同的时间、节日、突发事件等都会有不可预知的幅度变化,所以在此业务中要求有弹性的访问能力。业务方不希望通过限流方式来实现,因为会对业务量本身造成影响。
4. 性能优越的存储能力:此场景下,数据写入与读取并发量都高,客户希望使用NoSQL的方式进行存储。NoSQL 类型能最好支持排序的功能,本文介绍的方案中使用Redis,不再做更多的分析介绍。
备选的技术方案分析
数据通道的连接能力
自建Kafka
优点:
缺点:
消息队列MQTT方案
优点:
缺点:
弹性数据清洗的能力
大数据方案(Storm、Spark、Flink等)
优点:
缺点:
函数计算方案
优点:
缺点:
弹性数据访问的能力
传统应用的方案
优点:
缺点:
API Gateway+函数计算方案
优点:
缺点:
综述
在这个热力图信息收集清选与访问业务中,可以参考使用下图的解决方案完美实现。
重点接入步骤
MQTT到函数计算的介绍
请参考函数计算的微消息队列MQTT服务集成方案。
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)
};
“如何使用MQTT与函数计算做热力图”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注天达云网站,小编将为大家输出更多高质量的实用文章!