需要有关如何在多个专用服务器中创建部署 spring-cloud-dataflow 应用程序以创建流的建议

Posted

技术标签:

【中文标题】需要有关如何在多个专用服务器中创建部署 spring-cloud-dataflow 应用程序以创建流的建议【英文标题】:Need advice on how to create deploy spring-cloud-dataflow apps in several dedicated servers to create an stream 【发布时间】:2020-05-24 04:52:31 【问题描述】:

我正在尝试使用 spring-cloud-dataflow 在现有的一组服务器上创建流。它不是生产环境,我知道“本地”部署程序的容错问题。

我过去通过以下方式创建了此基础架构:

1-通过实现提供的接口创建了一个“scdf-server”(ui 和 shell 工作正常,没有任何变化)。此服务器使用 REST 调用将请求转发到每个服务器上运行的应用程序 (2)

2-在每台服务器上,我都有一个应用程序,它封装了本地部署程序并接收来自服务器的 REST 调用,并将其传递给封装的本地部署程序。

这种方法效果很好,但现在我需要新 SCDF 版本中的一些新功能,并且随着船长的引入,我不确定这是最好的方法,或者如果可能的话,需要建议。

TIA

【问题讨论】:

因为我的应用程序不会使用标准管道(它们有多个输入或输出)我想知道是否应该直接使用 skipper,SCDF 的唯一好处是 UI,我不会反正大部分都在用。 我认为这需要在每个盒子上都有一个船长服务器实例,然后在 SCDF 服务器上以某种方式有一个不同的“SkipperStreamDeployer”类实现,可以将请求路由到与每个船长相对应的船长客户端服务器,并在那里跟踪什么船长客户端正在运行什么应用程序。 忽略本地部署,假设需要将流的一部分部署到云中,并将同一流的另一部分部署到不同的云中,最好的方法是什么? 【参考方案1】:

看起来您已经浏览了代码,以便更好地了解事物的实现方式。

正如您所说,local 部署程序的实现绝不适用于生产部署。因此,SCDF 团队在 local 部署程序实现方面具有以开发人员为中心的设计目标,并且还限制了其扩展范围。

鉴于此,您根据需要设计设置的方式,将 Skipper 服务器嵌入到每个应用程序中将无法正常工作,因为 Skipper 服务器预计将与 SCDF 服务器建立一对一的关系。此外,Skipper 服务器还维护一个本地状态机,当您有不同的 Skipper 服务器实例侦听相同的 SCDF 服务器时,该状态机可能会过时。这使得整个设计确实非常复杂。

【讨论】:

如你所说,我已经完成了我的研究。我了解本地部署程序不处理应用程序的弹性,但是在文档中究竟是在哪里说它仅用于开发?而不是用于生产? 这里的README中有提到:github.com/spring-cloud/spring-cloud-deployer-local 它说“在生产环境中对该部署器的任何使用都应该伴随着应用程序级别的额外监控”......它并没有说它不应该在生产环境中使用,只是你应该自己处理这些事情...... 忽略本地部署,假设需要将流的一部分部署到云中,并将同一流的另一部分部署到不同的云中,最好的方法是什么?

以上是关于需要有关如何在多个专用服务器中创建部署 spring-cloud-dataflow 应用程序以创建流的建议的主要内容,如果未能解决你的问题,请参考以下文章

当 vault 部署在专用集群上时,如何从另一个 kubernetes 集群访问 vault secret?

你如何在 Flutter 中创建服务/提供者?

部署在 NX monorepo 中创建的 nestjs 服务器

如何在一个请求中在 Mongoose 中创建多个文档

如何在标题视图 iOS 中创建故事板布局多个视图?

如何在 IIS 中创建多个自定义 503 页面