导言:本文讲述了Spring数据框架在数据处理以及微服务方面的进化史。
定量分析能否成功,在很大程度上要依赖于其收集、存储与处理数据的能力。如果企业决策者能获得及时、可靠的见解分析,那么大数据项目的成功几率就会有所提高。
如今,想要为数据处理搭建合适的架构,需要付出颇为可观的努力。数据处理的类型主要集中在三个方面:
批处理:多用于处理大量具有可扩展性与分布性的静态数据。 实时处理:主要用于处理流式数据(连续不断的无限数据流),这类数据具有分布性与高速率特质。 混合计算模式:这种模式是批处理与实时处理的结合,可处理大容量的高速率数据。
大数据工程很花时间,同时要求工程师具备数据采集与数据处理的相关技巧,在大多解决方案中,时间与技能这两点都必不可少。Pivotal公司发布的Spring XD和Spring Cloud Dataflow这两款产品,都是用于减少大数据工程中开销的。本文会对Spring XD做以简单的介绍,并对其最新版,也就是Spring Cloud Data Flow进行更为详尽的介绍。
Spring XD
第一轮创新的结果造就了Spring XD(eXtreme Data,极限数据),这项技术为解决大数据处理的相关任务提供了易于使用的解决方案。Spring XD建立在成熟的Spring技术之上,为数据获取、迁移、处理、深度分析、流处理以及批处理任务提供支持。
Spring XD提供的框架可用于实时处理及批处理任务,该框架具有复杂性、稳定性及可扩展性。有了Spring XD,无论是收集数据,还是将数据从不同的数据源迁移到目标上,都变得更为简单。
Spring XD架构已广泛用于传统的企业ETL中、实时分析中与数据科学项目的工作台的创建中。
基于Spring XD的架构:
这种架构在下图中有所表现,在下列模块协助下,我们能够创建、运行、部署、撤销数据流通道(data pipeline),在框架中执行任意类型的数据处理任务。
SpringXD的主要组件是Admin和Container。
Admin UI向服务器发送需要处理的请求,而服务器通过执行任务的相关模块来处理请求。在这里,一个模块就是创建Spring应用前后关系(application context)的一个组件。
所有模块都需要XD容器才能运行和执行任务。
下面是Spring XD架构的关键模块。
Source:数据流的创建总是始于source模块。Source可以使用轮询机制或事件驱动机制,并且只会输出一个结果。 Processor:接受信息输入,并对输入的信息执行某种类型的处理,然后再输出信息。 Sink:顾名思义这个模块是负责终止数据流的,然后将输出结果发送到HDFS之类的外部资源中。 Job:这个模块负责执行批处理任务。
Spring Cloud Data Flow的需求
在Spring XD中,本质上不断变更的应用与需求之间还存在着缺口,需要我们在新一轮创新中解决。下面是推动新框架需求最为关键的要求:
在云技术的推动下,平台级别的操作与非功能需求都能很容易的实现。至于应用级别的非功能需求,仍是很有挑战性的。
我们对系统分阶段交付、执行动态资源分配、具有扩展能力以及在分布式环境中追踪的能力,都有着越来越大的需求。
如今,人们对于平台的需求从功能性转向选择云供应商。基于微服务的云架构更适合这一目标,但Spring XD并不能直接支持微服务架构。
Spring XD支持大数据场景,但仍有很大一部分项目无需Hadoop提供数据存储与处理服务。
Spring Cloud Data Flow
在第二轮的创新中,Pivotal公司推出了Spring Cloud Data Flow,作为Spring XD的替代产品。Spring Cloud Data Flow继承了Spring XD的优点,并提供了更有扩展性的解决方案——利用云技术的原生方式。Spring Cloud Data Flow是一个混合计算模型,结合了流数据与批量数据的处理方式。开发者可以通过Spring Cloud Data Flow,在诸如数据获取、实时分析、批处理等常见用例中执行数据流的创建与编排。Spring Cloud Data Flow的目标就是为了方便数据工程师,让他们能专注于分析工作和具体的问题。Spring Cloud Data Flow仅提供了管理服务的模型。
Spring Cloud Data Flow的架构
Spring Cloud Data Flow是Spring XD的修订版,在功能的构成方式上,还有如何协助原生云架构扩展应用方面,都做出了根本性的改变。
Spring Cloud Data Flow不再使用传统基于组件的架构了,而是采用了信息驱动的微服务架构,这种架构更适合原生云应用平台的原生应用。Spring XD的模块现在被部署到云上的微服务取代。
主要变化出现在下面这些领域中:
Spring Cloud Data Flow利用原生云平台引进了新的服务提供商接口(SPI),取代Spring XD原有的运行层。
虽然类似Admin REST API、shell层和UI层之类的用户接口与集成元素都与Spring XD中的一致,但底层架构发生了变化。
服务提供商接口或者SPI取代了基于Zookeeper的运行方式。现在,SPI能够协同Pivotal的Cloud Foundry或者Yarn之类监控/发布微服务应用的系统一同运作。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉