0

我是 Spring Cloud Data flow 和 Stream Cloud Streaming Applications 的新手。目前我的项目图如下所示:

在此处输入图像描述

我使用 zuul API 网关将来自外部客户端的 POST 请求路由到名为 Composite 的微服务。Composite 使用 REST POST 创建流并部署到 Spring Cloud Data Flow Server。据我所知,微服务 mongodb 和文件作为共存的 JVM 进程运行。如果我的客户端必须知道流的状态,处理数据的状态,复合微服务应该如何与 Spring Cloud Data Flow Server 交互?目前,当我进行 POST 调用以部署流时,我什至没有从 SCDF 服务器获得状态。SCDF 是否公开任何挂钩来查看单个应用程序?另外,如何更改流@runtime 以创建动态网格?

目前我正在使用本地 Spring Cloud Data Flow Server 进行开发。

4

1 回答 1

1

运行时平台是本地的

Localruntime 建议用于开发目的,如果您正在准备生产,请确保选择带有非功能性需求的平台变体(例如:cf、k8s、yarn、.. )以支持可靠和持久的执行在流式管道中运行的所有应用程序。

据我所知,微服务 mongodb 和文件作为共存的 JVM 进程运行。

如果您的流定义是file | mongodb,即使使用Local运行时,您也会有 2 个不同的 JVM。它们是独立的引导应用程序。

复合微服务应该如何与 Spring Cloud Data Flow Server 交互?

不清楚这里的“复合”是什么意思。SCDF 中的所有微服务应用程序都通过消息中间件(如 Kafka 或 Rabbit)进行通信。SCDF 提供了将此类应用程序运行到各种运行时平台的编排功能。

目前,当我进行 POST 调用以部署流时,我什至没有从 SCDF 服务器获得状态

您可以使用 SCDF 的 REST-API 来查询应用程序的当前状态,它与平台无关。您可以通过点击根 URL 来查看支持的 API 列表(见下图) - 文档中存在空白 - 我们将修复它。以下 API 可用于状态检查。

在此处输入图像描述

SCDF 是否公开任何挂钩来查看单个应用程序?

将应用程序部署到运行时平台后,您可以利用 Boot 的执行器端点来探索每个应用程序级别的更多细节,例如tracemetricshealth等。env有关更多详细信息,请参阅 Boot 的执行器端点。例如,如果您的mongodb应用程序在本地和端口上运行23000,那么您可以在以下位置检查此应用程序的粒度指标:http://localhost:23000/metrics

[作为一个仅供参考:未来的 SCDF 版本将包括集成 Spring Boot + Spring Cloud Sleuth 指标和相同的可视化表示。]

另外,如何更改流@runtime 以创建动态网格?

如果您指的是通过添加/删除来编辑正在运行的流式传输管道,我们目前正在探索支持此功能的设计方法。

于 2016-08-12T13:49:15.660 回答