写作时间:2019-08-02
Spring Boot: 2.1 ,JDK: 1.8, IDE: IntelliJ IDEA, MySQL 8.0.13

说明

Spring Boot Actuator 是安全检查组件。Spring Boot includes a number of additional features to help you monitor and manage your application when you push it to production. You can choose to manage and monitor your application by using HTTP endpoints or with JMX. Auditing, health, and metrics gathering can also be automatically applied to your application.

工程建立

参照教程【SpringBoot 2.1 | 第一篇:构建第一个SpringBoot工程】新建一个Spring Boot项目,名字叫demoactuator, 在目录src/main/java/resources 下找到配置文件application.properties,重命名为application.yml

在Dependency中选择Ops > Spring Boot Actuator。

配置pom.xml依赖

pom.xml添加Spring Boot Actuator依赖(如果上面选择了Actuator,则配置已经存在)

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

Controller处理请求

com.zgpeace.thymeleaf.demoactuator.DemoactuatorApplication

package com.zgpeace.demoactuator;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@RestController
public class DemoactuatorApplication {public static void main(String[] args) {SpringApplication.run(DemoactuatorApplication.class, args);}@RequestMapping("/hello")public String hello() {return "Hello Actuator";}
}

启动代码

代码启动成功

启动Idea 的Terminal,

看服务器能否相应request:

curl http://localhost:8080/hello
Hello Actuator%

查看Actuator health
% curl http://localhost:8080/actuator/health
{“status”:“UP”}%

health说明

health 主要用来检查应用的运行状态,这是我们使用最高频的一个监控点。通常使用此接口提醒我们应用实例的运行状态,以及应用不”健康“的原因,比如数据库连接、磁盘空间不够等。

默认情况下 health 的状态是开放的,添加依赖后启动项目,访问:http://localhost:8080/actuator/health即可看到应用的状态。

{"status" : "UP"
}

默认情况下,最终的 Spring Boot 应用的状态是由 HealthAggregator 汇总而成的,汇总的算法是:

  1. 设置状态码顺序:setStatusOrder(Status.DOWN, Status.OUT_OF_SERVICE, Status.UP, Status.UNKNOWN);。
  2. 过滤掉不能识别的状态码。
  3. 如果无任何状态码,整个 Spring Boot 应用的状态是 UNKNOWN。
  4. 将所有收集到的状态码按照 1 中的顺序排序。
  5. 返回有序状态码序列中的第一个状态码,作为整个 Spring Boot 应用的状态。
    health 通过合并几个健康指数检查应用的健康情况。Spring Boot Actuator 有几个预定义的健康指标比如DataSourceHealthIndicator, DiskSpaceHealthIndicator, MongoHealthIndicator, RedisHealthIndicator等,它使用这些健康指标作为健康检查的一部分。

举个例子,如果你的应用使用 Redis,RedisHealthindicator 将被当作检查的一部分;如果使用 MongoDB,那么MongoHealthIndicator 将被当作检查的一部分。

可以在配置文件中关闭特定的健康检查指标,比如关闭 redis 的健康检查:

management.health.redise.enabled=false

默认,所有的这些健康指标被当作健康检查的一部分。

总结

恭喜你,学会了应用Actuator查看 health。
代码下载:

https://github.com/zgpeace/Spring-Boot2.1/tree/master/tool/demoactuator

参考

https://spring.io/guides/gs/actuator-service/
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready
http://www.ityouknow.com/springboot/2018/02/06/spring-boot-actuator.html

易筋SpringBoot 2.1 | 第十一篇:SpringBoot使用actuator相关推荐

  1. 第十一篇 SpringBoot 2 x整合Swagger2

    程序猿最烦两件事,第一件事是别人要他给自己的代码写文档,第二件呢?是别人的程序没有留下文档. 程序员最讨厌的四件事:写注释.写文档.别人不写注释.别人不写文档-- 关于写文档这个事情,争论已久,今天就 ...

  2. SpringBoot 系列教程(四十一):SpringBoot集成RocketMQ(多模块方式)

    一.前言 RocketMQ是一款分布式.队列模型的消息中间件,是阿里巴巴集团自主研发的专业消息中间件,借鉴参考了JMS规范的MQ实现,更参考了优秀的开源消息中间件KAFKA,实现了业务消峰.分布式事务 ...

  3. SpringBoot 系列教程(五十一):SpringBoot整合Mybatis Plus代码生成器,自动生成代码

    MyBatis-Plus 为简化开发而生 快速开始 → 一.简介 MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发. ...

  4. spring boot学习(十三)SpringBoot缓存(EhCache 2.x 篇)

    SpringBoot 缓存(EhCache 2.x 篇) SpringBoot 缓存 在 Spring Boot中,通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManag ...

  5. 写代码时发现......还是 SpringBoot 牛逼!一篇拿下

    关注了很多技术类公众号的读者肯定有这样一个感受,SpringBoot相关的文章铺天盖地,并且SpringBoot相关的文章阅读量.收藏量都很高,这也从侧面反映了SpringBoot技术的火爆. 一切都 ...

  6. SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql

    SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql 本文介绍springboot通过jdbc访问关系型mysql,通过spring的JdbcTe ...

  7. SpringBoot进阶教程 | 第四篇:整合Mybatis实现多数据源

    这篇文章主要介绍,通过Spring Boot整合Mybatis后如何实现在一个工程中实现多数据源.同时可实现读写分离. 准备工作 环境: windows jdk 8 maven 3.0 IDEA 创建 ...

  8. SpringBoot学习历程(十一):SpringBoot2.X集成mail发送邮件

    SpringBoot学习历程(十一):SpringBoot2.X集成mail发送邮件 前言 1. 引入依赖 2. 设置邮件配置信息 3. 发送邮件 3.1 发送普通文本邮件 3.2 发送HTML格式内 ...

  9. springboot项目搭建0000-导航篇

    前言:这篇帖子没有任何涉及技术的内容,如果你想找springboot相关的技术知识,可以不用往下看了. 这篇帖子仅仅是对我的springboot相关博客,开辟一个导航页,方便读者.技术大牛略过 主要参 ...

  10. Java学习篇——SpringBoot

    1. 关于Spring Boot Spring Boot框架主要解决了创建工程后需要进行繁琐的配置的问题,是一个"开箱即用"的框架,其核心思想是"约定大于配置" ...

最新文章

  1. SDUT ACM 2144 最小生成树,克鲁斯卡尔模板
  2. MyBatis 插件原理与自定义插件-应用场景分析
  3. [原]windbg调试系列——崩溃在ComFriendlyWaitMtaThreadProc
  4. java cunstructor_参加JavaScript面试,必须搞懂的问题(推荐)
  5. 如何在java中实现线程_用代码说话:如何在Java中实现线程
  6. windows8 系统语言由中文修改为英文系统
  7. xpath下面的xpath_深入研究XPATH查询
  8. PHP $_SERVER详解
  9. 2、Charm Bracelet( poj 3624)简单0-1背包
  10. 会做饭的机器人曰记_会做饭的机器人作文二百字
  11. python 分类算法的数据要归一化嘛_Python数据预处理:彻底理解标准化和归一化...
  12. Overlay网络技术之vxvlan
  13. c语言运算符的三大特性,逻辑运算符及其优先级,C语言逻辑运算符及其优先级详解...
  14. python中的反三角函数_用公式计算反三角函数
  15. C++ : 热血格斗场
  16. 伍拾肆- R语言之 ‘如果一列为空则取另一列‘
  17. 通过ScrollView实现滚动效果
  18. day01.介绍python运维开发
  19. element UI 修改 table 中某一列的值
  20. C/C++实现三角函数的方法

热门文章

  1. JQuery的父、子、兄弟节点查找,节点的子节点循环
  2. IE7的CSS兼容性
  3. 深入浅出Hadoop: 高效处理大数据
  4. CAS单点登录(SSO)
  5. 五周第三次课(4月20日)shell介绍、命令历史、命令补全和别名、通配符 、输入输出重定向...
  6. GitHub上常用命令(工作中几乎每天用到的命令)
  7. 你知道怎么用Idea抽取方法、创建class吗?
  8. js的this作用域
  9. Java CopyOnWrite容器
  10. linux 每日学一点《将LINUX变成路由器》