【发布时间】:2021-06-13 23:19:03
【问题描述】:
我有一个包含 2 打春季批处理 cron 作业的应用程序。没有休息控制器,因为它是一个分析应用程序,它每天运行并从数据库中读取数据,处理它,然后将聚合数据存储在另一个数据库中。我想使用千分尺对工作进行弹簧内置指标并将它们推送到 Prometheus 。由于我的应用程序不是网络服务器应用程序,所以千分尺仍然会在 HOST:8080 上发布结果吗?执行器会自动在 HOST:8080 上启动一个新服务器吗?还是我们需要在 8080 上运行应用程序服务器?
我的理解是执行器和应用程序服务器可以运行不同的端口,因为它们是不同的进程?即使应用程序服务器存在与否,执行器应该能够使用与应用程序服务器端口相同的端口,或者它可以使用不同的端口港口?
所以如果我的应用程序不是基于网络服务器的应用程序,我仍然可以在 localhost:8080/actuator/ 访问指标并发布到 Prometheus?
【问题讨论】:
-
但如果是批量,则只能在短时间内使用。结帐github.com/spring-projects/spring-batch/blob/master/…
-
短时间是什么意思?另外,正如我在网上提到的,一些消息来源说,我只需要添加对工件的依赖即可。 micrometer-core 和 micrometer-registry-prometheus 仅此而已,我假设它会自动推送到 /actuator/promethous,然后我可以从那里进行抓取。为什么我们需要 PrometheusConfiguration 类?
-
这是一个批处理应用程序,不是吗?你是怎么开始的?
-
是的,它是一个 spring 批处理应用程序。当我运行主类时,所有作业都将被加载,并且由于所有作业都是根据 cron 表达式每天安排的,所以主将永远连续运行将来总是要执行的工作吗?我错过了什么吗?
-
现在我明白了。如果只添加 Actuator,则不会有 Webserver。您也必须添加网络启动器
标签: java spring-boot spring-batch prometheus metrics