SpringBoot学习之SpringBoot执行器
在以往的分布式开发当中,各个服务节点的监控必不可少。监控包含有很多方面,比如说:内存占用情况,节点是否健康等。在spring-boot会给我们提供相关资源监控叫做spring-boot-actuator, 通过执行器可以帮我管理和监控生产环境下的应用服务。
一。添加SpringBoot执行器的依赖(版本2.0.0.RELEASE)
添加gradle配置依赖:
dependencies {
compile('org.springframework.boot:spring-boot-starter-actuator')
}
二。关于SpringBoot的端点
端点是一个提供给我们监控应用程序的功能点,SpringBoot提供了一系列内置端点叫我们使用,举个例子:health端点为我们提供了一个对我们基础程序的一个健康状态的监控
每个端点都可以打开或关闭,绝大多数的应用都可以通过http请求进行访问,springboot包含很多内置内置端点。tips:参考官网的
| ID | Description | Enabled by default |
|---|---|---|
|
|
Exposes audit events information for the current application. |
Yes |
|
|
Displays a complete list of all the Spring beans in your application. |
Yes |
|
|
Shows the conditions that were evaluated on configuration and auto-configuration classes and the reasons why they did or did not match. |
Yes |
|
|
Displays a collated list of all |
Yes |
|
|
Exposes properties from Spring’s |
Yes |
|
|
Shows any Flyway database migrations that have been applied. |
Yes |
|
|
Shows application health information. |
Yes |
|
|
Displays HTTP trace information (by default, the last 100 HTTP request-response exchanges). |
Yes |
|
|
Displays arbitrary application info. |
Yes |
|
|
Shows and modifies the configuration of loggers in the application. |
Yes |
|
|
Shows any Liquibase database migrations that have been applied. |
Yes |
|
|
Shows ‘metrics’ information for the current application. |
Yes |
|
|
Displays a collated list of all |
Yes |
|
|
Displays the scheduled tasks in your application. |
Yes |
|
|
Allows retrieval and deletion of user sessions from a Spring Session-backed session store. Not available when using Spring Session’s support for reactive web applications. |
Yes |
|
|
Lets the application be gracefully shutdown. |
No |
|
|
Performs a thread dump. |
Yes |
有几点要补充说明一下:
1). 我们访问的端点监控的地址规范是:/actuator/{ID}的方式访问,比如说:health端点默认被映射的路径就是/actuator/health
2) 并不是所有端点都可以通过http请求访问,以下表格列举了各个端点的状态值:
| ID | JMX | Web |
|---|---|---|
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
Yes |
|
|
N/A |
No |
|
|
Yes |
No |
|
|
Yes |
Yes |
|
|
N/A |
No |
|
|
N/A |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
N/A |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans
3)当我们访问端点时,响应的数据会缓存一定的时间,我们可以通过这个属性进行配置:
management.endpoint.<id>.cache.time-to-live=10s
4) 我们也可以自己定义监视路径,默认情况是:/actuator/xxx,通过如下属性可以设置:
management.endpoints.web.base-path=/
5) 关于保护敏感端点,首先我们要添加对spring-security的依赖,并设置进行安全验证的用户名,密码以及角色,如果不使用spring-security就要慎重考虑暴露端口的端点了
三。关于Health端点
- health端点用于检测我们运行程序的健康状态,当程序宕机时,可以提供给开发人员相关的提示信息
- 默认情况下该端点只是显示简略的监控信息,不过我们可以通过management.endpoint.health.show-details属性来让其显示详细的监控信息
- 端点有如下几种状态: UP DOWN UNKNOW-SERVICE 从字面上我们很好理解
- 实现自定义健康监控:
package com.bdqn.lyrk.springboot.study.monitor; import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component; @Component
public class SelfMonitor implements HealthIndicator {
@Override
public Health health() {
return Health.up().withDetail("health","next").build();
}
}
例子很简单,主要是实现HealthIndicator接口,当我们访问:http://localhost:8080/actuator/health时,我们可以看到相关监控信息,如下图:

SpringBoot学习之SpringBoot执行器的更多相关文章
- SpringBoot学习(八)-->SpringBoot之过滤器、监听器
本文将直接使用@WebFilter和@WebListener的方式,完成一个Filter 和一个 Listener. 过滤器(Filter)和 监听器(Listener)的注册方法和 Servlet ...
- SpringBoot学习(七)-->SpringBoot在web开发中的配置
SpringBoot在web开发中的配置 Web开发的自动配置类:在Maven Dependencies-->spring-boot-1.5.2.RELEASE.jar-->org.spr ...
- SpringBoot学习(六)-->SpringBoot的自动配置的原理
Spring Boot的自动配置的原理 Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入 ...
- SpringBoot学习(五)-->SpringBoot的核心
SpringBoot的核心 1.入口类和@SpringBootApplication Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的J ...
- SpringBoot学习(四)-->SpringBoot快速入门,开山篇
Spring Boot简介 Spring Boot的目的在于创建和启动新的基于Spring框架的项目.Spring Boot会选择最适合的Spring子项目和第三方开源库进行整合.大部分Spring ...
- SpringBoot学习<二>——SpringBoot的默认配置文件application和多环境配置
一.SpringBoot的默认文件appliction 上一篇文章已经说明,springboot启动会内嵌tomcat,端口也是默认的8080,如果我们想要改变端口如果做呢? 在springboot项 ...
- SpringBoot学习(一):SpringBoot入门
1.Spring Boot 简介 1) 简化Spring应用开发的一个框架: 2) 整个Spring技术栈的一个大整合: 3) J2EE开发的一站式解决方案: 2.微服务 2014,martin fo ...
- SpringBoot学习- 5、整合Redis
SpringBoot学习足迹 SpringBoot项目中访问Redis主要有两种方式:JedisPool和RedisTemplate,本文使用JedisPool 1.pom.xml添加dependen ...
- springboot 学习资源推荐
springboot 是什么?对于构建生产就绪的Spring应用程序有一个看法. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.(这是springboot的官方介绍) 我们为什么要学 ...
随机推荐
- 接触JS的变量
刚刚接触到js,写的代码都是很简单的,制单的概念也相当少,新学习的就是变量.let和const以及js的数据类型. 变量的内容有五个,我就不一一介绍了,重点在于: 在 JavaScript 中,使用变 ...
- JavaScript AJAX实例
原生JS实现AJAX: // method : 请求方式 POST/GET; // url: 如果为GET方式的话url里面要带参数 // obj: 准备好的容器,方便储存拿到的数据 function ...
- MySQL默认储存引擎修改
1.输入以下SQL语句查看当前储存引擎支持: SHOW ENGINES; 如图所示本机默认引擎为MyISAM: 2.若要修改引擎执行: ALTER TABLE 表名 ENGINE = 储存引擎名: 3 ...
- Linux进程管理:查杀进程
一.查看进程 Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢? 两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格 ...
- 新概念英语(1-123)A trip to Australia
Who is the man with the beard?(胡须)A:Look, Scott. This is a photograph I took during my trip to Austr ...
- spring1——IOC之原理
spring框架的核心是IOC和AOP. 控制反转--IOC是一种编程思想,在spring中指的是对象的装配和管理交给了spring容器.这样做的好处是降低了系统之间的偶合度,既调用者不用再去创建被调 ...
- Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
本文目录 1. 前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...
- DIY一个超简单的画图程序
编译环境:VS2017+Easy_X 最近笔者一直在翻阅Easy_X的帮助手册,学习到了一些关于获取鼠标状态消息函数的知识,感觉收获颇大,于是想试验一番,将所学知识运用出来.先补充一下在Easy_X中 ...
- 新手创建Vue项目
======================安装vue=============================(参考网址:http://www.bubuko.com/infodetail-21320 ...
- webstorm 2018.1 激活码 2018.4.8日更新
安装完成后,打开 WebStorm, 在打开的 License Activation 窗口中选择 License server. 在输入框输入网址即可: http://hb5.s.osidea.cc: ...