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

检测激活/就绪执行器endpoint执行并收集其结果以将其发送到endpoint

陶成化
2023-03-14

我在Kubernetes上部署了带有执行器的Spring Boot 2.3.1应用程序,对应的K8s探针映射到执行器endpoint上:

livenessProbe:
  httpGet:
    path: /actuator/health/liveness
    ...

readinessProbe:
  httpGet:
    path: /actuator/health/readiness
    ...

共有1个答案

章昱
2023-03-14

这可能不是解决你问题的最优雅的方法,但会起作用。

只需截取执行器调用,并在响应发送后执行您需要执行的操作。

@Component
public class ActuatorHandlerInterceptorAdapter extends HandlerInterceptorAdapter {

  private static final Logger logger = LoggerFactory
      .getLogger(ActuatorHandlerInterceptorAdapter.class);

  @Override
  public void afterCompletion(HttpServletRequest request,
      HttpServletResponse response, Object handler, Exception ex)
      throws Exception {
    if (request.getRequestURL().toString().contains("actuator/health/liveness")){
      System.out.println("Let's do something based on liveness response");
    }
    if (request.getRequestURL().toString().contains("actuator/health/readiness")){
      System.out.println("Let's do something based on readiness response");
    }
  }

}
 类似资料:
  • 控制台输出: 我试图访问http://localhost:8080/acturet/health的执行器健康endpoint,但没有成功。

  • 大家早上好, 希望这是一个非常简单的问题。 如何支持Spring启动执行器endpoint? 我可以看到大多数的@ReadOperation和@WriteOperation,但我看不到基本URL在哪里得到支持,也看不到什么技术支持创建http://localhost:8080/actuator'终点。 我的项目确实显示了JSON(我想那是什么?)当我导航到地址http://localhost:80

  • 因此,我将Spring引导执行器添加到我的应用程序中,并在应用程序中指定。属性管理。endpoint。健康隐藏物生存时间=120秒,以缓存健康检查结果。因此,当我调用执行器/健康时,结果被缓存,效果很好。 当我调用执行器/健康/就绪或自定义创建的组时,问题开始出现。该请求结果不会被缓存。我查阅了Spring文档,只找到了主要健康终点的信息,没有找到特定人群的信息。 所以我的问题是:我错过了什么吗?

  • 在spring Boot2应用程序中,我试图访问执行器endpoint/bean,就像之前在spring Boot1.5.*应用程序中所做的那样。但我不能。另外,我在log.info中没有看到正在创建endpoint。 我的pom.xml包含: 在application.properties中,我只有关于DatabaseConnectivity的信息: 应用程序正在工作,但未创建/applicat

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

  • 如何访问http://localhost:8081/Actuatorendpoint?