1 文档说明
该文档描述的是以storm为主体的实时处理架构,该架构包括了数据收集部分,实时处理部分,及数据落地部分。
关于不同部分的技术选型与业务需求及个人对相关技术的熟悉度有关,会一一进行分析。
该架构是本人所掌握的一种架构,可能会与其他架构有相似的部分,个人会一一解释对其的理解。
这个文章写的很详细,相信对大家在实时处理整体理解上会有帮助的。
2 实时处理架构
2.1 整体架构图
架构说明:
整个数据处理流程包括四部分,一部分是数据接入层,该部分从前端业务系统获取数据;中间部分是最重要的storm实时处理部分,数据从接入层接入,经过实时处理后传入数据落地层;第三部分为数据落地层,该部分指定了数据的落地方式;第四部分元数据管理器。
2.2 数据接入层
该部分有多种数据收集方式,包括使用消息队列(MetaQ),直接通过网络Socket传输数据,前端业务系统专有数据采集API,对Log问价定时监控。
2.2.1 MetaQ
为什么选择消息队列?
这或许是大家比较疑惑的地方,会疑惑为什么不把数据直接导入storm中。使用消息队列作为数据中间处理组件的原因是,在大批量数据处理时,前端业务数据产生速度可能会很快,而实时处理或者其他处理速度跟不上,会影响整个系统处理性能,引入消息队列之后,我们可以把数据临时存储在消息队列中,后端处理速度就不会影响前端业务数据的产生,比较专业的术语叫做解除耦合,增加系统扩展性,系统各组件异步运行。
为什么使用MetaQ?
在消息队列选择上,kafka是一个比较通用的,开源时间较长的消息发布订阅系统,而MetaQ是基于kafka开发的,使用我们比较熟悉的Java