NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Spring Cloud Data Flow: 来自被重构的 SpringXD

  • 2015-10-19
  • 本文字数:1735 字

    阅读完需:约 6 分钟

Pivotal 在上周(译者注:这篇新闻发表于 2015 年 9 月 25 日)的 SpringOne2GX 会议上宣布了对其大数据产品 Spring XD 进行了完全的重构,并且给予它一个新的品牌名称 Spring Cloud Data Flow . 这个新产品将可执行的应用作为其模块基础,并且聚焦在这些应用的编排上。虽然新产品从 Spring XD 那里保留了高层的 REST API、shell 和 UI,从而保证了后向兼容,但新旧产品的底层却大不相同。

Spring XD 中基于 Zookeeper 的运行环境不见了,取而代之的是服务提供总线(SPI :service provider interface),SPI 在其它系统中也有应用,如 Pivotal Cloud Foundry Lattice Yarn ,主要用做微服务应用的加载、扩展和监控。迄今为止 SPI 的应用案例包括,Lattice 系统中使用 receptor API 来加载模块,以及 Cloud Foundry 中 cloud controller API 的使用。当然,它也有运行在进程中的本地实现,这和老的XD 产品中的单节点运行比较类似。

“在这个变化的过程中一个基本理念是我们保留了许多高层的API”, Pollack 在会议中讲到,“但是在这个下面我们进行了巨大的重构以克服那些我们已经发现的根本性的限制。”

这些限制包括了扩展能力、金丝雀部署(Canary Deployments,通过路由策略选择性地对部分用户发布新功能)、资源分配(比如不同的模块分配不同的内存)、分布式追踪(distributed tracing)等等,这些都是目前产品的架构所无法满足的。另一些限制则是和经典父子类加载器体系(parent-child classloader hierarchy)的使用相关,与之相反,如果你使用的是隔离的微服务应用架构,就可以使用扁平的加载器(flat classloader)。

为了解决这个类加载器的问题,现存的集成模块和批处理模块已经被重构,成为使用隔离扁平加载器(isolated flat classloaders)的可引导的Spring 应用(Spring Boot apps) 。实际上,这个设计使得流处理和批处理应用以微服务的方式运行,而这些微服务可以独立的演进。即使没有Spring Cloud Data Flow,这些微服务模块也可以独立运行,因为本质上它们就是Java 的Jar 包,但data flow 可以帮你解决很多乏味冗长的工作,比如属性配置等。还有一些其它的好处,比如相比之前基于Zookeeper 的XD 容器架构,现在可以以更直接的方式来编写这些独立模块的单元测试程序。上面这些优点可能会开启新的市场机会,并触发更多的社区贡献。

在可引导的模块下面是两个新的项目:Spring Cloud Stream 和Spring Cloud Task,创建这两个项目的目的是为Spring Integration 和Spring Batch 分别提供自动配置的能力。

为了能对这个编程模型有些理解, 可以参考下面这段代码, 它来自Mark Fisher 和Dave Syer 的第二次演讲, 实现的是流入信道适配器, 代码使用了标准的Spring Integration 注解(annotation),缺省情况下Spring Integration 每秒钟会去调用它:

复制代码
@EnableBinding(Source.class)
public class Greeter {
@InboundChannelAdapter(Source.OUTPUT)
public String greet() {
return "hello world";
}
}

@EnableBindings(Source.class) 这个注解将会检测你在类路径(classpath)上实现了什么样的绑定器(binder),然后会用这个绑定器来创建信道适配器。它有一个接口类型的参数,Source、Sink 和 Processor 是已经定义好的,你也可以定义其它的。这个示例中,Source 自身仅仅是一个消息信道接口:

复制代码
public interface Source {
@Output("output")
MessageChannel output();
}

@Output 注解用来标识输出信道(离开这个模块的消息),而 @Input 则用来标识输入信道(进入这个模块的消息)。信道可以被一个可选的名称来参数化 - 如果没有这个信道名,那么就会用它的方法名来代替。

与 Source 对应的 Sink 是独立的进程,我们本可以跑更多的这样的进程,比如 10。Sink 会监听与另一个中间件间的集成信道,并且当有消息时被激活:

复制代码
@EnableBinding(Sink.class)
public class Logger {
@ServiceActivator(inputChannel=Sink.INPUT)
public void log(String message) {
System.out.println(message);
}
}

从示例来看,Spring Cloud Data Flow 象粘合剂一样,致力于将这些应用部分串到一起。目前,它的一个里程碑版本已经可以使用。

查看英文原文 SpringXD being Re-architected and Re-branded to Spring Cloud Data Flow

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2015-10-19 19:007240

评论

发布
暂无评论
发现更多内容

「燃情大促,年终钜惠」,家人们这一波可以冲!

融云 RongCloud

活动 服务 IM RTC 融云

Luminar Neo(超强AI图像编辑器)特别版下载mac/win

影影绰绰一往直前

Luminar Neo破解版 Luminar Neo下载 Luminar Neo mac

利用Docker容器化构建可移植的分布式应用程序

互联网工科生

Docker 容器化

堪比文件传输助手!解决文本、图片、视频、音乐跨设备同步难题!

彭宏豪95

软件推荐 文件传输 数据同步 在线白板 浏览器插件

容器安全和安全运行时的重要性

Geek_2d6073

AI PC的时代,英特尔和联想、爱奇艺是怎样玩转AI的?

E科讯

Go的命令行工具开发:使用Cobra库

这我可不懂

cobra go语言

去中心化交易所开发

西安链酷科技

区块链 去中心化 交易所 合约 合约数字货币

服务器大揭秘:美国服务器为何成为热门选项?

一只扑棱蛾子

美国服务器

重磅更新!Sermant 1.2.0 release版本新特性速览

华为云开发者联盟

开源 后端 华为云 华为云开发者联盟

DAPP链上质押挖矿分红开发原理

西安链酷科技

区块链 dapp 去中心化 挖矿

终身学习支持非结构化场景 | KubeEdge-Ianvs v0.2 发布

华为云原生团队

云计算 容器 云原生 边缘计算 kubeedge

稳定扩散的高分辨率图像合成

3D建模设计

AI自动纹理 稳定扩散

大模型 | 今天聊聊大语言模型幻觉(AI Hallucinations)

澳鹏Appen

数据标注 大模型 生成式AI LLM 大模型幻觉

GameFi游戏NFT链游开发系统搭建技术

西安链酷科技

区块链 dapp 去中心化 链游开发

流行的矿机系统定制开发 | IPFS虚拟矿机源码开发 | 矿机模式挖矿搭建功能开发

V\TG【ch3nguang】

DeFi链上金融借贷系统开发 | DAPP区块链挖矿系统搭建

V\TG【ch3nguang】

混沌工程稳态假说

腾讯云混沌演练平台

混沌工程 稳定性保障

速谈Beyond Compare使用的六个步骤

晴雯哥

购买小间距LED显示屏需要考虑8个方面

Dylan

领域 LED LED显示屏 实用指南

如何调用API获取你想要的数据

Noah

AI 革命:最佳 txt 转纹理工具

3D建模设计

AI自动纹理 AI纹理

科技企业正成为外交名片

TE智库

新能源

知识图谱与大模型相结合的3种方法,1+1>2

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 大语言模型

混沌工程GameDay

腾讯云混沌演练平台

混沌工程 GameDay 稳定性建设 混沌演练

UltraEdit for mac(文本编辑器) v21.00.0.12中文完整版

mac

UltraEdit 文本编辑器 苹果mac Windows软件

7 款用于训练 AI 模型的合成数据工具

3D建模设计

人工智能模型 合成数据 UnrealSynth

VMware Workstation 17安装教程之设置系统模式

小齐写代码

PDF编辑器:Acrobat Pro DC 2023 「Mac」

彩云

PDF编辑 Acrobat Pro DC 2023

Java应用程序性能开发工具:JProfiler 14 「Mac」附 注册码

彩云

java开发工具 JProfiler 14

荣耀推送服务 - 发送下行消息能力指导

荣耀开发者服务平台

基础服务 实时推送 API 接口 荣耀开发者服务平台 开放能力

Spring Cloud Data Flow:来自被重构的SpringXD_Java_Charles Humble_InfoQ精选文章