【架构-8】Lambda和Kappa架构
Lambda架构?
Lambda架构(三层架构):
(1)将数据处理划分为实时与离线两大类。其中的离线过程采用批量计算完成数据处理,并通过追加方式将实时更新的数据整合到批处理流程中以实现无缝衔接。
(2)分开展示独立性特征的批处理与增量式操作能够有效应对大规模数据需求的变化与扩展。
(3)主要应用于分开展示独立性的场景中包括但不限于:基于离线分析的数据获取以及报表制作等应用领域。


MapReduce
Redis
MapReduce
优点:
(1)容错性好,批处理和流处理两条路径,HDHF分布式文件系统和Kafka消息队列系统中有数据冗余备份机制。
(2)查询灵活度高,批处理允许对任何数据进行临时查询。
(3)易伸缩。所有批处理层、加速层和服务层都很容易扩展。因为它们都是完全分布式的系统,易伸缩易扩展
(4)准确性好,通过批处理对全部数据进行处理,结果准确性高。
缺点:
(1)全场景覆盖带来的编码开销
(2)重新部署和迁移成本高
应用实例

Kappa架构?
Kappa架构(二层架构):
(1)主要基于流处理机制的数据分析架构能够实现对输入数据的即时处理并生成即时视图服务层则负责接收用户的查询请求并从即时视图中检索所需信息从而完成用户的查询需求
(2)基于流式技术特别适合用于处理具有高频率特性的数据源
(3)在对实时性要求较高的领域如金融行业物流行业等该架构能够提供高效的实时监控与预警功能

采用Apache Kafka回访数据
主要基于Apache Kafka实现回传数据
支持Flink或Spark Streaming平台进行流式计算分析
一般使用数据仓库或数据湖中的缓存或存储作为服务层
通常会选择在数据仓库或数据湖中设置缓存机制与存储资源来构建服务层

优点:
(1)通过代码统一实现了离线与实时处理的无缝衔接,并确保了数据处理过程的一致性;
(2)该系统具备极低延迟、高强度的吞吐量以及高度可扩展的特点;
(3)整体架构设计简洁直观。
缺点:
其计算能力有限且无法立即响应外部请求;严重依赖特定组件如Redis和HBase等库的支持。
应用实例

Lambda和Kappa架构的区别?


