流式计算系统-StreamBase

数据库
StreamBase是IBM开发的一款商业流式计算系统,在金融行业和政府部门使用,其本身是商业应用软件,但提供了Develop Edition。

StreamBase是IBM开发的一款商业流式计算系统,在金融行业和政府部门使用,其本身是商业应用软件,但提供了Develop Edition。相对于付费使用的Enterprise Edition,前者的功能更少,但这并不妨碍我们从外部使用和API接口来对StreamBase本身进行分析。

StreamBase使用Java开发,IDE是基于Eclipse进行二次开发,功能非常强大。StreamBase也提供了相当多的 Operator、Functor以及其他组件来帮助构建应用程序。用户只需要通过IDE拖拉控件,然后关联一下,设置好传输的Schema并且设置一下控件计算过程,就可以编译出一个高效处理的流式应用程序了。同时,StreamBase还提供了类SQL语言来描述计算过程。

StreamBase的组件交互情况如图3所示。

图3 StreamBase组件交互图

StreamBase Server是节点上启动的管理进程,它负责管理节点上Container的实例,每个Container通过Adapter获得输入,交给应用逻辑进行计算,然后通过Adapter进行输出。各个Container相互连接,形成一个计算流图。

Adapter负责与异构输入或输出交互,源或目的地可能包括CSV文件、JDBC、JMS、Simulation(StreamBase提供的流产生模拟器)或用户定制。

每个StreamBase Server上面都会存在一个Sytsem Container,主要是产生系统监控信息的流式数据。

HA Container用于容错恢复,可以看出它实际包含两个部分:Heartbeat和HA Events,其中HeartBeat也是Tuple在Container之间传输。在HA方案下,HA Container监控Primary Server的活动情况,然后将这些信息转换成为HA Events交给StreamBase Monitor来处理。

Monitor就是从System Container和HA Container中获取数据并且进行处理。StreamBase认为HA 问题应该通过CEP方式处理,也就是说如果哪个部件出现问题,就肯定会反映在System Container和HA Container的输出流上面,然后 Monitor通过复杂事件处理这些Tuples的话就能够检测到机器故障等问题,并作出相应处理。

StreamBase提出了以下4种模板策略来解决容错问题。

  • Hot-Hot Server Pair Template

Primary Server和Secondary Server都在同时计算,并且将计算结果交给下游。优点是Primary Server如果故障的话那么Secondary Server依然工作,几乎没有任何切换时间;并且下游只需要选取先到来的Tuple就可以处理了,保证处理速度最快;缺点是浪费计算和网络资源。

  • Hot-Warm Server Pair Template

Primary Server和Secondary Server都在同时计算,但只有Primary Server将计算结果交给下游。优点是如果Primary Server故障,Secondary Server可以很快切换,而不需要任何恢复状态的工作。相对于Hot-Hot方式时间稍微长一些,但没有Hot-Hot那么耗费网络资源,同时也浪费了计算资源。

  • Shared Disk Template

Primary Server在计算之后,将计算的一些中间关键状态存储到磁盘、SAN(Storage Area Network)或是可靠的存储介质。如果Srimary Server故障,Secondary Server会从介质中读取出关键状态,然后接着继续计算。优点是没有浪费任何计算和网路资源,但恢复时间依赖状态的量级而定,相对于前两种,恢复时间可能会稍长。

  • Fast Restart Template

这种方案限定了应用场景,只针对无状态的应用。对于无状态的情况,方案可以非常简单,只要发现Primary Server故障,Secondary Server立即启动,并接着上游的数据流继续计算即可。

【编辑推荐】

责任编辑:艾婧 来源: 程序员
相关推荐

2011-10-18 16:53:13

Borealis分布式流式

2011-10-18 17:05:45

分布式流式数据库

2011-10-18 14:00:30

MapReduce分布式流式

2011-10-18 14:57:06

S4分布式流式

2019-04-04 09:19:08

日志京东流式计算

2023-02-07 09:37:08

流计算

2011-12-30 13:50:21

流式计算Hadoop

2023-11-14 07:21:44

大数据流式图计算

2011-10-19 17:40:23

流式计算

2021-01-12 10:00:34

流式输出数据

2023-07-19 08:00:00

Raft分布式系统

2023-08-18 09:29:59

Java数据流

2024-02-04 16:22:13

Python流式输出开发

2013-02-21 16:27:07

开源开源流计算

2010-02-05 16:18:41

C++流式文件操作

2011-08-09 09:54:02

Exchange 20备份

2013-09-25 15:28:42

Storm流式处理框架框架

2021-08-31 10:07:16

Flink Hud数据湖阿里云

2021-06-30 07:19:35

双向流式RPCgRPC

2022-06-16 11:01:22

数据库SQL
点赞
收藏

51CTO技术栈公众号