0
点赞
收藏
分享

微信扫一扫

【深圳五兴科技】Java后端面经

minute_5 03-06 23:00 阅读 3

文章目录

一. Kappa架构

 

1. Speed Layer (Stream Layer) - The Foundation of Kappa Architecture

在这里插入图片描述

在kappa架构中,LA的速度层是kappa的基础。与将数据处理拆分为两个独立层(批处理和实时处理)不同。kappa关注实时到来的数据,历史数据在kappa中只是数据流中比较老的数据,他和新到来的数据处理方式(实际上,Flink的批处理模式较流模式模型是不同的,效率会比流模式高 参考:execution_mode)是一样的。流层读取到来的数据,处理并将数据发送到下游进行存储或者进一步分析。此层提供了数据处理的低延迟。

 

2. Stream Processing: The Heart of Kappa Architecture

kappa架构的本质是流处理,kappa进行不断的流查询。这使得实时分析、模式检测、决策、系统监控等变成现实。如下流处理过程:
在这里插入图片描述

流处理层有两个关键组件:数据摄取部分、数据处理部分。

kappa架构简化了数据处理管道。通过去除批处理层,kappa简化了系统复杂性,带来了更容易维护和拓展的架构。

 

二. Benefits of Kappa and Streaming Architecture

Lamba和kappa架构对比图

在这里插入图片描述

 

1. Simplicity and Streamlined Pipeline

kappa将所有的输入源数据作为流,无论它来自历史或实时数据源。数据处理的统一减少了复杂性和编码开销,使得数据管道更容易管理、优化和分级。

 

2. High-Throughput Processing of Historical Data(高吞吐处理历史数据)

虽然看起来kappa主要处理实时任务,但对于处理高吞吐的历史数据也非常优雅。你只需要将所有的流数据,作为有界流处理即可处理批任务。

在这里插入图片描述

 

3. Optimizing Storage with Tiered Approach(通过分层来优化存储)

在 Kappa 架构中使用分层存储可以通过采用分层存储来实现成本效益和性能。虽然分层存储不是 Kappa 架构的核心概念,但它可以无缝地融入其框架中。

 

三、Challenges of Implementing Kappa Architecture

1. Complexity of Setup and Maintenance

尽管kappa比Lamba简化,但安装和维护kappa架构仍然有一定的复杂性,尤其是对于那些对流处理框架尚不熟悉的组织。理解流处理器内部工作机制,管理输入源、处理复杂的流事件,需要专家和踩坑。

 

2. Cost and Scalability Considerations

在实施 Kappa 架构时,更为明显的一个问题是与在事件流处理平台上存储大数据相关的成本。针对这一挑战的一个潜在解决方案是采用云存储服务(如 AWS S3 或 Google Cloud Storage)提供的数据湖方法。这些服务可以提供可扩展且高效的存储解决方案,能够处理通常与流数据架构相关的大量数据。

将“流数据湖”纳入数据流架构是另一种可行的方法。这涉及使用 Apache Kafka 作为流层,同时与对象存储结合进行长期数据存储。这种设置可以创建一个可扩展且成本效益高的基础架构,但需要仔细的规划和执行,以避免可扩展性问题和不必要的花费。

 

3. Managing Data Streams for Integrity, Correctness, and Consistency

由于传入数据的连续和并发特性,流系统本质上无法保证事件顺序。这个特性在处理延迟数据时需要进行一些权衡。

 
为了应对这些挑战,像 Uber 这样的公司创新地设计了他们的 Kappa 架构,以便使用统一的代码库来支持流式结果的回填。

 
参考:
https://nexocode.com/blog/posts/kappa-architecture/

举报

相关推荐

0 条评论