oceanus mysql_Oceanus:基于Apache Flink的一站式实时计算平台

相比于Storm和其他一些流计算框架,Flink有着更先进的计算框架,具有以下几点优势:

1)首先,Flink提供了更友好的编程接口。Storm提供的API偏底层且过于简单,用户需要大量的开发工作来完成业务需求。另外,用户在开发Storm程序时的学习成本也较高,需要熟悉框架原理和在分布式环境下的执行细节。Flink除了提供Table API和SQL这些高级的声明式编程语言之外,还对window这些流计算中常见的算子进行了封装,帮助用户处理流计算中数据乱序到达等问题,极大的降低了流计算应用的开发成本并减少了不必要的重复开发。

2)Flink提供了有效的状态管理支持。大部分的计算程序都是有状态的,即计算结果不仅仅决定于输入,还依赖于计算程序当前的状态。但Storm对程序状态的支持十分有限。一般情况下,用户常常需要将状态数据保存在MySQL和HBase这样的外部存储中,自己负责这些状态数据的访问。这些对外部存储的访问常常成为Storm程序的性能瓶颈。大多数情况下,用户只能设计复杂的本地cache来提升性能。Spark Streaming直到最近才提供了有限的状态管理支持,但受限于其实现机制需要一定的远程访问和数据迁移工作,因此状态数据的访问效率并不高。Flink则对计算程序的状态存储提供了有效支持。用户可以通过提供的接口方便地存储和访问程序状态。由于这些状态数据存放在本地,因此用户可以得到较高的访问性能。在发生故障时,Flink的状态管理会配合容错机制进行状态数据的重建,保证用户程序的正确性。而当用户需要修改程序并发度时,Flink也可以自动地将状态数据分发到新的计算节点上。

3)Flink提供了丰富的容错语义。由于Storm缺少对程序状态的有效支持,其对容错的支持也较弱,很难保证在发生故障的情况下,每条输入数据恰好被处理一次。而Flink则依靠分布式系统中经典的Chandy-Lamport算法,能够对用户程序的输入和状态生成满足一致性的程序快照。在发生异常的情况下通过快照回滚,Flink可以保证EXACTLY-ONCE的容错语义。而利用异步checkpoint和增量checkpoint技术,Flink能够在以较低的成本对用户程序进行快照。在开启快照时,用户程序的性能几乎不受影响。

4)Flink拥有出色的执行性能。Flink基于事件触发的执行模式对数据流进行处理,相比于Spark Streaming采取mini batch的执行模式,能够大量减少程序执行时的调度开销。此外,Flink对网络层进行了大量优化,通过细粒度封锁和高效内存访问提高数据传输性能,并通过反压机制和流量控制有效降低流量拥塞导致的性能下降。加上Flink能够避免状态数据的远程访问,Flink在实践中表现出比其他流计算系统更出色的执行性能,具有更低的处理延迟和更高的吞吐能力。

二、平台介绍

尽管Flink作为计算引擎有着较为出色的表现,但在业务迁移过程中,我们仍然遇到了一些问题。一个流计算任务从开发到上线要经历包括开发、测试、部署和运维在内的多个阶段。用户首先在开发阶段使用IDE开发程序,并进行编译和打包。之后用户将打包好的程序部署到测试环境中,生产测试数据进行测试。测试通过之后,用户需要将其部署到现网环境中,并设定需要的运维指标进行监控。在这些阶段中,用户需要在不同环境和不同工具打交道,整体的开发和运维效率较低。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值