如何监控 SCDF 内部的流媒体应用程序?

How to monitor streaming apps Inside SCDF?

我是 Spring 云数据流和流云流应用程序的新手。 目前我的项目图如下所示:

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

目前我正在使用本地Spring云数据流服务器进行开发。

Runtime platform is local

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

As far as I know the microservices mongodb and file run as co-existing JVM processes.

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

How should Composite Microservice interact with Spring Cloud Data Flow Server?

这里的 "composite" 不清楚你的意思。 SCDF 中的所有微服务应用程序都通过 Kafka 或 Rabbit 等消息中间件进行通信。 SCDF 为 运行 此类应用程序提供编排功能,使其进入各种 运行 时间平台。

Currently when I make POST call to deploy the stream I dont even get the status from SCDF Server

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

Does SCDF expose any hooks to look at the individual apps?

在 运行time 平台中部署应用程序后,您可以利用 Boot 的执行器端点来探索更多详细信息,例如 tracemetricshealth, env 等在每个应用程序级别。有关详细信息,请参阅引导的 actuator endpoints。例如,如果您的 mongodb 应用程序 运行 在本地和端口 23000 上运行,那么您可以在 http://localhost:23000/metrics.

检查此应用程序的详细指标

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

Also how can I change the flow @runtime to create a dynamic mesh?

如果您指的是使用 addition/deletes 编辑 运行ning 流式传输管道,我们目前正在探索支持此功能的设计方法。