Lambda 架构:原理、技术选型与实践
1. Lambda 架构的层次与组件
Lambda 架构旨在处理各种大数据问题,涵盖数据的海量性(Volume)、高速性(Velocity)和多样性(Variety)。其规范定义了一系列相互连接或松散耦合的层,每层都有特定的职责。主要的层和组件包括:
- 数据源(Data sources) :外部数据源负责在数据到达时进行交付。它可以采用多种数据交付模型,如消息队列(MQ)、Web 服务、目录/文件(定期轮询新数据)、直接数据库访问或基于原始套接字的数据交付机制。在大多数情况下,数据交付机制由提供和访问数据的供应商定义,我们无法控制。不过,我们可以开发数据消费层来隐藏从不同数据源访问数据的复杂性,只以特定格式消费数据。
- 数据消费层(Data consumption layer) :该层负责封装从不同数据源获取数据的复杂性,并将其转换为标准格式,以便批处理层或实时层进一步消费。转换后的数据将被推送到批处理和实时数据层进行处理。
- 批处理层(Batch layer) :这是 Lambda 架构中最重要的组件之一。批处理层从数据消费层接收/获取数据,并将其持久化到用户定义的不可变且不断增长的数据结构中,即仅追加的主数据(Append Only Master Data),如 Hadoop/HDFS 就是创建这种主数据的典型示例。此外,批处理层还负责创建和维护批处理视图(Batch views)。批处理视图是对主数据定期计算或刷新的数据结构/视图,可视为聚合视图或转换视图,能直接被服务层消费。例如,处理 Web 日志并计算不同 URL 的数
超级会员免费看
订阅专栏 解锁全文
1038

被折叠的 条评论
为什么被折叠?



