没有控制器的应用程序中不会公开Spring Boot Actuator端点

问题描述

我创建了一个Spring Boot Application,它开始在Kafka Queue上流式传输大量数据。它没有控制器,因为我没有任何端点,但是我希望执行器端点可见。是否始终需要有一个Controller才能看到Actuator端点。我已经按照所有步骤设置了执行器端点。 这是存储库:https://github.com/gavarava/postgres-big-db

解决方法

否,您不需要任何controller即可使用actuators。 执行器端点未显示的原因是您尚未在pom.xml中添加执行器依赖性。 将此添加到您的pom.xml

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

这将为您提供healthinfo端点。 如果希望所有端点在application.properties文件中添加此属性。

management.endpoints.web.exposure.include=*

您将在/actuator/{endpoint}处访问端点。 您可以在
找到更多关于执行器的信息 https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html

,

问题是我正在创建一个带有半无限循环的Kafka生产者。 如此看来,由于我的半无限循环正在进行中,Spring初始化似乎无法完成启用执行器端点的功能。 我将while循环更改为if条件,并每5秒调用一次,还向我的方法添加了Async注释。

这样,一切都会继续进行,执行器也将启用。