通过情况下,如我们想在系统中添加一个健康检查的接口,我们怎么做呢?

我们会新建一个类,或在已存在类的基础上添加检测接口。

package com.crhms.medicareopinion;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HealthzController {
@GetMapping("/healthz")
public String healthz(){
return "OK";
} //可以添加自己的逻辑
}

访问如下:

这个做起来,也没什么问题,但是,当微服务多的时候,如果每个微服务都这样添加的时候,再这么做,我们就得想办法了,是否可以去重呢,抽象出检测的接口呢。

再有,如果我想在检查中统一加对数据库的检测,对缓存的检测,想想肯定又一堆代码了。

这时我发现了springboot Actuator。有了它,再实现类似的功能,就相当简单了。

只需要在pom.xml文件中,添加GAV即可:

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

启动项目,访问http://localhost:8001/actuator/health

Actuator 提供了 13 个接口 也叫endpoint,具体如下表所示:

HTTP 方法 路径 描述
GET /autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
GET /configprops 描述配置属性(包含默认值)如何注入Bean
GET /beans 描述应用程序上下文里全部的Bean,以及它们的关系
GET /dump 获取线程活动的快照
GET /env 获取全部环境属性
GET /env/{name} 根据名称获取特定的环境属性值
GET /health 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供
GET /info 获取应用程序的定制信息,这些信息由info打头的属性提供
GET /mappings 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系
GET /metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
GET /metrics/{name} 报告指定名称的应用程序度量值
POST /shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true
GET /trace 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)

默认接口只提供了health, info接口,如果想访问其他接口需添加配置:

management:
endpoints:
web:
exposure:
include: "*"

health只展示了简单的UPDOWN状态。为了获得健康检查中所有指标的详细信息,你可以通过在application.yaml中增加如下内容:

management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always

如果你的程序配置了数据库的访问,那个还会把数据库的状态显示出来:

最新文章

  1. VS2015签名丢失解决办法
  2. Django--models基础
  3. Maven实战之antrun插件
  4. Java基础(44):ArrayList使用详解
  5. mysqldump: command not found问题解决
  6. HashMap 死循环的探究
  7. 130道C#面试题
  8. Your data vis “Spidey-sense” &amp; the need for a robust “utility belt”
  9. 用ESP8266+android,制作自己的WIFI小车
  10. SiftGPU在Ubuntu和Windows下的编译与使用
  11. 通信统计接口字段填充内容shell脚本
  12. Mysql加锁过程详解(1)-基本知识
  13. 从零开始的cve分析- cve-2016-0095 简易记录
  14. 【XSY2703】置换 数学 置换 DP
  15. Web从入门到放弃&lt;1&gt;
  16. UVa 902 - Password Search
  17. R语言编程艺术#04#数据框(data.frame)
  18. 转载-&gt;CPU的内部架构和工作原理
  19. floor函数
  20. Unity3D游戏-愤怒的小鸟游戏源码和教程(二)

热门文章

  1. 前端开发 - JQuery - 中
  2. 七牛云存储--内存put示例(go sdk)
  3. MySQL与Btree
  4. JSR303验证
  5. 看我学习Apache+php+wordpress+phpMyAdmin的搭配配置
  6. TensorFlow学习笔记(一)--windows系统安装配置
  7. 前端神器ws激活步骤
  8. 切换usb口的命令
  9. python3_configparser模块详解
  10. mysql 手动安装和管理