在1.5版发布了2个半月之后,Pivotal 发布 了 Spring Cloud Data Flow (SCDF)1.6,该项目用于构建和编排到运行时的实时数据处理管道(如Pivotal Cloud Foundry,简称PCF;Kubernetes和Apache Mesos)的项目,具有以下新功能:
我们在这里对其中一些新功能进行了检测。
与SCDF以前的版本一样,此 快速入门 指南展示了如何用docker-compose实用工具启动该新版本:
DATAFLOW_VERSION=1.6.1.RELEASE docker-compose up
建立后,可以通过http://localhost:9393/dashboard在本地访问SCDF控制面板。
由于将原生 PCF调度程序 集成到了 Cloud Foundry的SCDF ,任务定义可以通过cron表达式用SCDF安排调度和取消调度了。PCF调度程序是处理像数据库迁移和HTTP调用等任务的服务。开发人员可以创建、运行和调度作业及查看历史。调度程序可以通过SCDF控制面板上的Tasks菜单访问。
另外,1.6版的新功能是SCDF 应用程序托管工具 ,用 Spring Shell 构建而成,旨在构建和维护本地网络上的独立SCDF 应用程序存储库 ,针对的是开发人员在防火墙后面运行SCDF的情况,例如,无法访问 Spring Maven存储库 的时候。应用程序托管工具scdf-app-tool,可以通过 源代码 或 下载 二进制文件进行构建。
启动后,应用程序托管工具启动一个REPL,其初始提示为:binder-undefined:>,表示需要定义一个流应用程序。以下所示的是,在调用帮助命令时,该工具可以使用的命令。
请注意:get stream-apps和list stream-apps这些命令在此时是不可用的。只要用如下所示的binder命令定义了流应用程序,就可以使用这些命令了。支持的绑定器有kafka、kafka-10和rabbit,但是,重要的是,用于binder命令的kafka参数是kafka-10的别名。
请注意:提示变成kafka-10:>的时候,可以调用get stream-apps和list stream-apps命令。
SCDF 应用程序存储库 (Spring Boot应用程序)是一个基于web的存储库,用于构建流和任务应用程序以注册和部署应用程序而无需外部Maven存储库。该应用程序存储库(scdf-app-repo)位于scdf-app-tool的配置目录下面,可以按下面的步骤构建:
$ cd config/scdf-app-repo $ ./mvnw clean package
该应用程序存储库可以部署到云平台或在本地运行:
$ java -jar target/scdf-app-repo-0.0.1-SNAPSHOT.jar
开始运行后, 可以通过http://localhost:8080/repo/在本地访问存储库上的托管工件。
Pivotal的高级工程师 Mark Pollack 向InfoQ介绍了该最新版本。
Pollack:Spring Cloud Data Flow是个轻量级的Spring Boot应用程序,它提供数据集成工具包,分别把Spring Cloud Stream(SCSt)和Spring Cloud Task(SCT)微服务应用程序组合编排成一致的实时流和批量数据管道。实时流应用程序可以使用各种中间件产品,如Kafka KStreams、RabbitMQ和谷歌的Pub-Sub。所有这一切基于的都是Spring Boot。从编程模型到测试、CI/CD和这些应用程序在云平台(如Cloud Foundry或Kubernetes)上的运维都是一致的。
尽管市场上有很多流媒体平台和实时分析解决方案,但从架构上来说,我们对数据处理工作负载的云原生方法是独一无二的,其中用于流媒体应用程序的CI/CD是一等公民。在这种程度上,数据处理逻辑(也即,Spring Boot应用程序)可以对实时流量模式做出反应,通过不中断上游或下游数据处理而自动扩展或滚动升级来完成。
Pollack:Spring Cloud Data Flow横跨 生态系统中的多个项目 ,其中每个项目有独立的待办和发布节奏。
我们的主要目标是,在构建实时流和批量数据管道时,提高开发人员的工作效率。尽管添加新功能改进流流体和批量编程模型是最优先考虑的,但我们也密切关注在云平台(如Cloud Foundry或Kubernetes)方面的运营改进。
一些值得注意的功能:
在Kafka和Kafka Streams生态系统上持续投资,以促进状态存储(State Storages)和交互查询(Interactive Queries),并保持云原生实践的完整性。
批量/任务负载通常基于重复的节奏或cronjob进行调度。Cloud Foundry(通过PCF调度程序)和Kubernetes的实现(基于CronJob规范)尚在开发。
可用性是个重点。控制面板有大量的改进,包括编排机制、交互性和整体的观感及体验。
对于我们的很多客户来说,安全性仍然是首要的,对我们的团队来说,也是如此。Streams启动任务的其他安全功能以及对组合任务功能的支持是即将发布的版本的目标。还有审计跟踪功能也将在下一个版本中发布,以解答“谁在何时做了什么?”的问题。
我们还积极推动下一代数据处理工作负载的设计。我们的基金会今天围绕着Spring Boot uber-jar,而明天可能就是些复古简单的Function jar了。Spring Cloud Stream、Spring Cloud Function和Spring Cloud Stream App Starter都从整体目标、设计和架构角度重新进行了评估。
尤其是,PCF的Spring Cloud Data Flow自动化了Cloud Foundry中的配置方面以及端到端SSO的深度安全模型。有兴趣继续优化该图块以加强开发人员和操作人员与SCDF进一步的互动。
Pollack:作为团队的领导,每件事我都会做一点。我帮助定义路径图、做些功能开发、维护、验收测试、发布管理和客户支持。我也尝试在Robotron中获得更高的分数。
Baeldung 的 用Spring Cloud Data Flow进行流处理的入门(2018年4月4日)
查看英文原文: Pivotal Releases Spring Cloud Data Version 1.6 Featuring a New App Hosting Tool
感谢冬雨对本文的审校。