当前位置: 首页 > 知识库问答 >
问题:

Spring Boot执行器-Javaendpoint

景星华
2023-03-14

我们在基础结构模型中有一个执行器健康检查示例,我们正在主服务中使用该示例(向包添加依赖项、@import类名等)。

通过添加后缀/acture/healt,我们了解了httpendpoint,以下是结果:

{
    "status": "UP",
    "components": {
        "com......DbServiceValidator": {
            "status": "UP"
        },
        "com......StorageServiceValidator": {
            "status": "UP"
        },
        "diskSpace": {
            "status": "UP",
            "details": {
                "total": 505370734592,
                "free": 362675372032,
                "threshold": 10485760,
                "exists": true
            }
        },
        "ping": {
            "status": "UP"
        }
    }
}

但我们希望以编程方式从java代码获取所有这些数据。我做了一些调查,但什么也没有发现。

有没有可能直接从代码中获取数据(/json)(不需要rest等)?

共有1个答案

阎弘
2023-03-14

总而言之,您可以遵循以下策略:

>

  • 使用JMX。Spring引导执行器还可以通过JMX暴露endpoint,除了REST。请参阅文档。因此您可以编写一个代码,以编程方式访问“health”mbean并获取聚合信息。

    尝试将healthendpoint(它应该是一个bean,尽管我自己从未尝试过)注入到您的类中,并通过直接从服务器调用对象(就像它是一个常规类一样)来获取有关健康的信息--您将获得从JSON逻辑上表示信息的对象。健康endpoint的源代码可在此处获得

  •  类似资料:
    • 我正在将一个旧的java Spring项目重构为springboot,并以传统的war风格部署它。出于某种原因,我必须坚持传统的web.xml来启动应用程序。多亏了Springboot遗产,我可以通过web.xml实现这一点: 此外,我添加了springboot执行器依赖项。应用程序。属性如下所示: 应用程序可以正常启动,但当我尝试从浏览器访问endpoint时,它只返回一个“401需要完全身份验

    • 我们什么时候应该使用Spring boot执行器。如果包括在内,它对应用程序内存和CPU使用有多大影响? 我目前正在使用Spring Boot 2. x。

    • 我需要改变频率来检查springboot执行器中的DB运行状况。默认DB运行状况检查查询每毫秒执行一次。我想让这个查询每1分钟后执行一次,而不是毫秒。有什么方法可以自定义它吗?

    • 我正在使用springboot,我正在使用执行器和prometheus暴露度量。我想暴露“信息”、“健康”、“度量”、“prometheus”、“关闭”等等。但是即使我指定应用程序属性,我看到的是甚至根“/执行器”也暴露了。 我想禁用根部执行器,只有我之前说过的5个成员。 有没有办法不只暴露/执行器endpoint?我也尝试过在应用程序属性中这样做: 这是外露致动器的列表:

    • 我有一个springboot应用程序,执行器在我的邮件服务器上执行许多请求。 我在github中创建了一个示例来演示这一点。 增加属性eureka.client.registryFetchInterval秒不是一个解决方案,我希望它永远不会在电子邮件或数据库中进行测试(在我的示例中,我没有数据库)

    • 我在spring引导应用程序中面临内存泄漏,在使用Eclipse MAT进行堆转储分析之后,它指出了spring boot执行器中潜在的内存:精确地说是使用InMemoryAuditEventRepository(审计事件)。 禁用此内存审核事件的最佳方法是什么: 删除spring-boot-acturtor依赖项 management.endpoints.enabled-by-default=t

    • 我希望所有执行器endpoint(在文档中描述)都可用。在文档之后,添加了启动器启动器依赖项和属性,但大多数endpoint不可用(HTTP 404)。 唯一可用的endpoint是,但它显示无用的信息: 添加属性。 添加了依赖项: 获取/执行器的结果 启用执行器endpoint的最小设置是什么?