我们有一个现有的微服务环境,其中包含 logstash、config 和 eureka 服务器。我们现在正在设置一个 Spring Cloud Dataflow (Kubernetes) 环境(主要是为了运行任务/批处理作业)。
理想情况下,我们希望任务通过标准的 Spring Boot 配置(注释等)使用现有的 logstash、config 和 eureka 服务器来支持以下场景:
Logstash:当任务运行时,其日志会输出到 Logstash,并且可以从 Kibana 中查看
配置服务器:支持更改任务的配置属性。例如,可以通过更改配置服务器上的值来调整周期性任务的配置,下次任务运行时它将使用新值。我的理解是配置服务器属性将覆盖任务定义中的属性,这些属性会覆盖内部 application.properties 中的属性。
Eureka:每个任务都会在 Eureka 中注册自己。主要原因是我们的任务暴露了 Web 执行器端点,然后我们可以使用 Spring Boot Admin(可以通过 eureka 发现服务)在任务运行时访问执行器端点和信息。(我们的一些任务可能需要几个小时才能运行,这将使我们能够监控它们、调整日志记录等)
这是一种明智的方法吗?或者这里是否有任何潜在的问题需要注意(例如,使用尤里卡的短期任务)。我在现有的 Spring Cloud 数据流或 Spring Cloud 任务文档中找不到任何关于此的讨论。