
流处理系统
|
255
PurchaseTotals
Bolt
发送一系列变化的总购买量到
TopSellers
Bolt
中,在流中创建
最畅销商品的排行榜。
globalGrouping
将所有
PurchaseTotals
实例的输出路由到单个
TopSellers
Bolt
实例。
逻辑
Storm
拓扑如图
15-4
所示。根据部署拓扑的基础集群配置,
Storm
将在一个或多个
可用的
JVM
中的线程上执行指定数量的
Bolt
实例。这使拓扑能够利用部署环境中可用
的计算资源。
图 15-4:Apache Storm 拓扑示例
Apache Storm
是一个功能强大且可扩展的流处理平台。然而,它的
API
相对简单,并将
显式的拓扑定义责任交给了应用程序设计器。在本章的剩余部分,我将转而关注更新的
Apache Flink
,它提供了函数式编程
API
来构建流应用程序。
15.3
案例研究:
Apache Flink
Apache Flink
诞生于
2014
年,基于
European Union Stratosphere
项目(
https://oreil.ly/
JDTQo
)中的原始研究。
Flink
的核心是一个分布式流处理系统,专为高吞吐量和低延迟
而设计。
Flink
提供了一组操作,用于过滤、聚合、映射和连接来自数据源的数据流。与
明确定义的
Apache Storm
拓扑不同,
Flink
程序被编译并自动转换为可以部署在集群计
算环境中的数据流程序。
Flink
提供了许多不同的
API
。我将在以下小节中简要给出
DataStream
(数据流)
API