首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >弹簧引导2:执行器/健康端点需要更多时间

弹簧引导2:执行器/健康端点需要更多时间
EN

Stack Overflow用户
提问于 2020-08-31 05:21:56
回答 3查看 2.4K关注 0票数 3

在我的服务/执行器/健康端点中,需要花费更多时间(大约9秒)。我正在使用下面的依赖项,如何调试这个?

代码语言:javascript
运行
复制
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

使用的Spring引导版本:2.0.3

谢谢你,哈里

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-31 06:54:04

基本上,health端点的实现方式是包含实现接口HealthIndicator的所有Spring的列表。

每个健康指示器负责提供关于一个子系统的健康信息(这类子系统的例子有:磁盘、postgres、mongo等),spring引导带有一些预定义的HealthIndicators。

因此,当调用health端点时,它遍历这个列表并获取每个子系统的信息,然后构造答案。

因此,您可以在相关的健康指标中放置一个断点(假设您知道检查了哪些子系统)并查看发生了什么。

如果您正在寻找HTTP入口点--调用http://<host-port>/health时被调用的代码(可以根据您的设置不同而变化,但您有此想法),则可以找到这里

另一种出现在脑海中的方法是禁用“可疑”的健康检查,并通过消除而发现缓慢的健康检查。

例如,如果您有一个私密搜索并且希望禁用它,请在application.properties中使用

代码语言:javascript
运行
复制
management.health.elasticsearch.enabled = false
票数 5
EN

Stack Overflow用户

发布于 2021-06-01 09:13:21

在Mark的答案之上,在application.properties / application.yml中设置此属性

代码语言:javascript
运行
复制
management.endpoint.health.show-details=always

将有助于确定哪些组件构成健康检查,因为GET /致动器/健康将产生更多详细信息。

票数 1
EN

Stack Overflow用户

发布于 2021-12-18 17:38:32

马克的伟大答案之上

作为在调用/health端点时同步运行所有健康检查的替代方法(这只会导致随着添加更多的健康检查而导致越来越长的执行时间),您可以通过用@AsyncHealth注释库弹簧-引导-异步-健康状态指示器 (对于Spring >= 2.2)使您的HealthIndicator异步运行。

除了使/health端点立即返回(作为返回在不同线程上计算的health)之外,它还包括每个异步health()方法执行的执行时间,作为一个额外的细节,这将极大地帮助计算出哪个底层服务在生产系统上响应缓慢。

免责声明:我编写这个库是为了帮助解决现有HealthIndicator系统的多个限制,包括这个

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63665192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档