Apache Samza:高吞吐量分布式流处理框架的剖析
在当今的数据驱动时代,流处理在众多组织的数据管理需求中扮演着日益重要的角色。事件流可以代表各种类型的数据,如网站上用户的活动、货物或车辆的移动,以及数据库记录的写入等。而Apache Samza作为一个开源的分布式高容量事件流处理框架,凭借其独特的设计和强大的功能,在众多互联网公司的生产环境中得到了广泛应用。
一、Apache Samza简介
Apache Samza最初由LinkedIn开发,于2013年捐赠给Apache软件基金会,并在2015年成为顶级Apache项目。如今,包括LinkedIn、Netflix、Uber和TripAdvisor等在内的许多互联网公司都在生产环境中使用Samza。
Samza的主要设计目标是支持广泛处理模式下的高吞吐量,同时为互联网公司所需的大规模操作提供稳健性。它通过精心设计的几个抽象概念来实现这一目标,包括用于消息传递的分区日志、容错的本地状态和基于集群的任务调度。
二、流处理概述
流处理作业是长期运行的进程,它持续消费一个或多个事件流,对每个事件调用应用程序逻辑,生成派生输出流,并可能将输出写入数据库以供后续查询。与批处理或数据库查询通常在某个时间点读取数据集的状态然后结束不同,流处理器永远不会结束,它会持续等待新事件的到来,只有在管理员终止时才会关闭。
许多任务可以自然地表示为流处理作业,例如:
1. 事件聚合 :统计特定项目被查看的次数。
2. 事件速率计算 :用于系统诊断、报告和防止滥用。
3.
超级会员免费看
订阅专栏 解锁全文

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



