认识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中的结果集得到最终数据集。该层提供了主数据集上执行的计算结果的低延迟访问。读取速度可以通过数据附加的索引来加速。

相关推荐
爆爆凯2 分钟前
MobaXterm_Portable_v23.2 免费下载与使用教程(附安卓替代方案)
java·github
+72034 分钟前
如何在java中用httpclient实现rpc get请求
java·qt·rpc
秋野酱36 分钟前
基于 JavaWeb 的 SSM+Maven 微信小程序快递柜管理系统设计和实现(源码+文档+部署讲解)
java·微信小程序·maven·课程设计
你在我身后38 分钟前
Spring-JAVA
java·后端·spring
卓越软件开发2 小时前
Java计算机毕业设计基于SSM宠物美容信息管理系统数据库源代码+LW文档+开题报告+答辩稿+部署教程+代码讲解
java·课程设计·宠物
丁总学Java2 小时前
Cannot deserialize instance of java.lang.String out of START_ARRAY token
java·windows·python
+7202 小时前
Java 的 HttpClient 中使用 POST 请求传递参数
java·开发语言
lozhyf3 小时前
如何使用Spring boot框架实现图书管理系统
java·spring
WalkingWithTheWind~3 小时前
Linux搭建Nginx直播流媒体服务RTMP/RTSP转Http-flv视频浏览器在线播放/Vue/Java/ffmpeg
java·linux·nginx·ffmpeg·vue·http-flv·rtsp