认识lambda架构(架构师考试复习)

Lambda架构主要分为三层,批处理层、加速层和服务层。

如下图所示:

(1)批处理层(Batch Layer):存储数据集,在数据集上预先计算查询函数,并构建查询对应的view。Batch Layer可以很好地处理离线数据。当很多场景需要实时查询的时候,则需要Speed Layer

(2)加速层(Speed Layer):batch layer处理的是全体数据集,speed layer处理的是增量数据流。Speed layer接收到数据后会不断更新Real-time view,而Batch Layer是根据全体离线数据集直接得到Batch View。

(3)服务层(serving layer):Serving layer用于合并Batch View 和Real-time view中的结果数据集到最终数据集。

1、批处理

批处理有两个核心功能,存储数据集和生成Batch View。该层主要负责主数据集,主数据集有以下三个属性:

(1)数据是原始的

(2)数据是不可变的

(3)数据永远真实的

2、加速层

它存储实时视图并传入数据流,以便更新这些视图。

Speed Layer和Batch Layer的区别如下:

(1)speed layer处理数据是最近的增量数据流,batch layer是全体数据集。

(2)Speed layer为了效率,接收到新数据时不断更新Real-time view,而Batch Layer是根据全体离线数据集直接得到Batch View。

分为加速层和批量层的好处有哪些?

容错性:当speed layer重新计算后,当前的real-time view就可以丢弃,而batch view也是重新计算的。

复杂性隔离:批量处理离线数据很好掌握,加速层处理增量数据隔离出来。

Scale out:横向扩展,通过增加机器来扩展,而不是增加机器性能scale up。

3、服务层

用于响应用户查询,合并batch view和real-time view中的结果集得到最终数据集。该层提供了主数据集上执行的计算结果的低延迟访问。读取速度可以通过数据附加的索引来加速。

相关推荐
泥泞开出花朵15 分钟前
LRU缓存淘汰算法的详细介绍与具体实现
java·数据结构·后端·算法·缓存
七七软件开发43 分钟前
团购商城 app 系统架构分析
java·python·小程序·eclipse·系统架构·php
七七软件开发1 小时前
打车小程序 app 系统架构分析
java·python·小程序·系统架构·交友
_祝你今天愉快1 小时前
Java-JVM探析
android·java·jvm
学编程的司马光1 小时前
Idea集成Jenkins Control插件,在IDEA中触发Jenkins中项目的构建
java·jenkins·intellij-idea
孟君的编程札记1 小时前
别只知道 Redis,真正用好缓存你得懂这些
java·后端
幻雨様1 小时前
UE5多人MOBA+GAS 番外篇:同时造成多种类型伤害,以各种属性值的百分比来应用伤害(版本二)
java·前端·ue5
爱吃小土豆豆豆豆2 小时前
登录校验一
java·大数据·数据库
热河暖男2 小时前
Spring Boot AI 极速入门:解锁智能应用开发
java·人工智能·spring boot·ai编程
lifallen2 小时前
hadoop.yarn 带时间的LRU 延迟删除
java·大数据·数据结构·hadoop·分布式·算法