天天看点

Spring XD: 将数据驱动的联系放到统一的平台上

最近在学习Spring XD的知识,发现刚刚release 1.1GA版本,于是顺手翻译了一篇Sabby Anandan的blog,他是Pivotal的PM,文章类似于release note的感觉,是个Spring XD的介绍

无论你在家里,办公室还是旅途中,信息的互通是一样的。这已然成为我们生活的一部分,我们对这种联系已经形成依赖并且习以为常。人与人,人与信息之间的联系都可以归结为数据的迁移和分析,对于这种数据传输,数据需要不断地传送,并且需要不停的提高速度以便把结果更快地传递给用户。对于更高的标准,始终维持这种稳定且可用的联系,面临着诸多挑战,因为对于数据提供商来说,数据的类型,格式,大小都是不定的。

Spring XD 将这些挑战放到一个统一的平台当中。不管对于持续的数据流还是有计划的数据迁移,Spring XD 提供了一套端对端的管道,去解决数据的接收,处理,分析和组织。

在1.1 GA 版本的发布中,Spring XD 添加了对项目的Reactor,RxJava和Spark Streaming的支持,实现了对流处理的功能。包括现存的对Spring 批处理,Hadoop任务(MR/Hive/Pig,我们还添加了对Sqoop和Spark批处理任务的支持。考虑到Python对大数据的重要性,我们也在Spring XD 流中,集成了Python processor 和 sink 模块。这些有利于用户对于不同的场景,选择合适的工具,使用户可以使用本地API构建复杂的数据处理管道。

与其他的流处理框架不同,Spring XD的DSL(Domain Specific Language)去掉了编码的要求,去掉了了如何创建一个Project,IDE,构建脚本或者和数据绑定,用高级配置的语言DSL取代。Spring XD 团队一直致力于开发者的效率,在这个平台上,添加了很多对开发者友好的插件和范例。数据流,是由数据管道上的处理单元组成,它可以通过DSL很好的组织起来,内置的管理UI可以用来远程监控和管理数据流,批处理任务以及集群。

Spring XD 1.1 GA 提供了数以千计的数据管道组合,不需要任何代码,就能构建出来。与其他的数据处理架构不同,这个特性由企业级的Spring集成项目所支持,作为市场份额的领导者,该项目被普遍看好,即将成为业界标准。

Spring XD的内核,是采用易于扩展的方式构建的。在1.1 GA发布的版本当中,加入了一个新的开发和贡献模块的方法。感谢Spring引导模块的插件,现在可以选择Maven或Gradle去绑定你的模块。通过包含客户模块的依赖,你可以通过REST-API部署uber-jar。这些不需要你将现在的运行时关笔,担心现在正在运行的数据管道。REST-API简化了流程,装上的用户模块很快就能准备就绪并使用。

因为插件化的架构,Spring XD持续集成框架,以便于简化Big Data应用的开发。在最新的发布中,你可以接收Kafka topic(source-adapter)的数据,并且写入Kafka topics(sink-adapter),也可以将Spring XD集成入Kafka作为一个消息总线。这样可以让Spring XD进行数据组织,使你更加集中于业务逻辑当中。

由于我们新加入的Kafka客户端的API,用户有了新的选择,可以在stream级上作partitioning,控制offset,批处理,可靠消息的重新处理等。

1.1 GA 的发布,也集成了Spark这个顶级的Apache项目,采用out of the box Spark作为一个批处理任务,或者将Spark Streaming作为流处理模块,你可以创建一个数据管道,使用本地的Spark API,对于一些已经使用Spark的开发者来说,这是一个非常熟悉的过程。同时,对于Spark的新手来说,也可以快速地适应了解数十种输入和输出的适配器,使用一个模块化分布式,高容错的运行时,有利于集中精力在业务需求上。对于单点的崩溃,Spring XD提供了增值服务,重启Spark Streaming driver以便从错误的场景中恢复。

随着Spring XD 1.1 GA的发布,开发大数据应用不再是费时和复杂的,我们的目标是去掉应用开发和大数据之间的障碍,减少数据消化到数据查询的疑虑,真正的实现数据驱动应用。在将来的发布中,我们会继续提高开发者的效率,并且一直保持Spring XD是一个内核开放并且可拓展的运行时。

查看英文原文 https://spring.io/blog/2015/02/12/spring-xd-data-driven-connectivity-within-a-unified-platform