【问题标题】:Spring Boot Actuator endpoints not exposed in application without controllerSpring Boot Actuator 端点未在没有控制器的应用程序中公开
【发布时间】:2020-10-10 07:47:12
【问题描述】:

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

【问题讨论】:

    标签: spring spring-boot spring-boot-actuator


    【解决方案1】:

    不,您不需要任何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

    找到更多关于执行器的信息

    【讨论】:

    • 感谢您的帮助。检查我自己的答案...仍在学习春天开始一切的确切方式。
    • 您终于添加了执行器依赖项。当您提出问题时,执行器依赖项不在您的 pom.xml 中。
    • 是的,尽管添加了依赖项,但它没有工作。所以它在我的测试中有效,但在生产中无效。不同之处在于我在测试配置文件中禁用了 Kafka 生产者。感谢您的支持。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      • 2018-08-11
      • 2019-05-07
      • 1970-01-01
      • 2020-09-15
      相关资源
      最近更新 更多