SpringCloud学习笔记(十)_SpringCloud监控

今天我们来学习一下actuator这个组件,它不是SpringCloud之后才有的,而是SpringBoot的一个starter,Spring Boot Actuator。我们使用SpringCloud的时候需要使用这个组件对应用程序进行监控与管理

在SpringBoot2.0版本中,actuator可以为我们提供以下端点:

访问路径描述
/actuator/auditevents显示当前应用程序的审计事件信息
/actuator/beans显示一个应用中所有Spring Beans的完整列表
/actuator/conditions显示配置类和自动配置类的状态及它们被应用或未被应用的原因
/actuator/configprops显示一个所有@ConfigurationProperties的集合列表
/actuator/env显示来自Spring的 ConfigurableEnvironment的属性
/actuator/features显示系统启动的一些features
/actuator/health显示应用的健康信息
/actuator/httptrace最后100个HTTP请求
/actuator/info显示任意的应用信息
/actuator/metrics展示当前应用的metrics信息
/actuator/mappings显示一个所有@RequestMapping路径的集合列表
/actuator/refresh更新配置
/actuator/scheduledtasks显示应用程序中的定时任务
/actuator/service-registry当前应用在注册中心的状态
/actuator/shutdown允许应用以优雅的方式关闭
/actuator/threaddump执行一个线程dump
/actuator/heapdump返回一个GZip压缩的hprof堆dump文件
/actuator/loggers返回系统的一些日志

虽然actuator默认给我们提供了这么多的端点供我们使用,但是为了安全起见,在SpringBoot2.0中它仅仅开放了health和info两个端口,如果想要使用其他的端口就需要我们增加一些配置了,一起来看一下如何使用actuator吧。

1. 引入依赖

1  
2  
3  
4  

|

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

—|—

2. 修改配置文件

1  
2  
3  
4  
5  
6  

|

management:  endpoints:  web:  exposure:  #exclude: shutdown,threaddump   #此处控制的是不开放哪些端点  include: "*" #此处控制的是开放哪些端点,如果需要开启少数端点可以这样配置:health,info。如果开启多个则使用*号开启除了exclude的端点  

—|—

这个时候我们使用postman等接口调用工具访问 ip:端口/actuator 这个路径时就会得到下图所示的这么一个json串,这个json串中就是对应的各个端点的地址信息。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mkxo4Ord-1693012941312)(http://zhixiang.org.cn/2018/11/16/%E6%AF%8F%E5%A4%A9%E5%AD%A6%E7%82%B9SpringCloud%EF%BC%88%E5%8D%81%EF%BC%89%EF%BC%9ASpringCloud%E7%9B%91%E6%8E%A7/1.png)]

3. 健康检查

默认我们访问/actuator/health得到的只是一个状态值,其实它的详细信息里包含了很多有用的东西,比如说检查磁盘空间、DataSource的连接、Elasticsearch、Mongo、Rabbit、Redis等信息,我们可以通过如下配置来开启详细的健康检查:

1  
2  
3  
4  

|

management:  endpoint:  health:  show-details: always  

—|—

不仅如此,健康检查的指标我们还可以自定义,创建如下的一个bean提供健康检查的功能。

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  

|

@Component  
public class ConnectTimeHealthIndicator implements HealthIndicator {  @Override  public Health health() {  long connectTime=(long)Math.random()*10;//模拟一个连接操作  if(connectTime>3){  //如果连接时间大于3则认为连接失败,返回状态为down  return Health.down().withDetail("code", "504").withDetail("msg","xx应用连接超时").build();  }  return Health.up().build();  }  
}  

—|—

此时我们访问 ip:端口/actuator/health 访问时可能就会根据连接时间呈现下方的两种状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vuv3Pn4i-1693012941314)(http://zhixiang.org.cn/2018/11/16/%E6%AF%8F%E5%A4%A9%E5%AD%A6%E7%82%B9SpringCloud%EF%BC%88%E5%8D%81%EF%BC%89%EF%BC%9ASpringCloud%E7%9B%91%E6%8E%A7/2.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hql0xgNd-1693012941314)(http://zhixiang.org.cn/2018/11/16/%E6%AF%8F%E5%A4%A9%E5%AD%A6%E7%82%B9SpringCloud%EF%BC%88%E5%8D%81%EF%BC%89%EF%BC%9ASpringCloud%E7%9B%91%E6%8E%A7/3.png)]

GitHub地址:https://github.com/shiyujun/spring-cloud-demo。代码所在模块:cloud-demo-consumer-feign

如果对您有所帮助,请记得帮忙点一个star哦

本文出自http://zhixiang.org.cn,转载请保留。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/88374.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于React实现日历组件详细教程

前言 日历组件是常见的日期时间相关的组件&#xff0c;围绕日历组件设计师做出过各种尝试&#xff0c;展示的形式也是五花八门。但是对于前端开发者来讲&#xff0c;主要我们能够掌握核心思路&#xff0c;不管多么奇葩的设计我们都能够把它做出来。 本文将详细分析如何渲染一…

【网络】多路转接——五种IO模型 | select

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 五种IO模型 | select &#x1f367;五种IO模型&#x1f367;select&#x1f9c1;认识接口&#x1f9c1…

MATLAB算法实战应用案例精讲-【自然语言处理】语义分割模型-DeepLabV3

目录 1、DeepLab系列简介 1.1.DeepLabV1 1.1.1创新点&#xff1a; 1.1.2. 动机&#xff1a; 1.1.3. 应对策略&#xff1a; 1.2.DeepLabV2 1.2.1.创新点&#xff1a; 1.2.2.动机 1.2.3. 应对策略&#xff1a; 1.3.DeepLabV3 1.3.1创新点&#xff1a; 1.3.2. 动机&am…

Mybatis与Spring集成配置

目录 具体操作 1.1.添加依赖 1.2创建spring的配置文件 1.3. 注解式开发 Aop整合pagehelper插件 1. 创建一个AOP切面 2. Around("execution(* *..*xxx.*xxx(..))") 表达式解析 前言&#xff1a; 上篇我们讲解了关于Mybatis的分页&#xff0c;今天我们讲Mybatis与…

【机密计算-大厂有话说】微软 Azure

什么是机密计算? 机密计算是由机密计算联盟 (CCC) 定义的一个行业术语,CCC 是专注于定义并加速机密计算落地的一个基金会。 CCC 给机密计算的定义是:通过在基于硬件的可信执行环境 (TEE) 中执行计算来保护使用中的数据。 TEE 是一个只能执行授权代码并对其进行保护的环境,T…

QT概括-Rainy

Qt 虽然经常被当做一个 GUI 库&#xff0c;用来开发图形界面应用程序&#xff0c;但这并不是 Qt 的全部&#xff1b;Qt 除了可以绘制漂亮的界面&#xff08;包括控件、布局、交互&#xff09;&#xff0c;还包含很多其它功能&#xff0c;比如多线程、访问数据库、图像处理、音频…

screen命令,可以断开服务器连接,依旧能运行你的程序了

可以参考博客1&#xff1a;https://blog.csdn.net/nima_zhang_b/article/details/82797928 可以参考博客2:https://blog.csdn.net/herocheney/article/details/130984403 Linux中的screen是一个命令行工具&#xff0c;可以让用户在同一个终端会话中创建多个虚拟终端。它非常有…

【MySQL】组合查询

目录 一、组合查询 1.创建组合查询 2.union规则 3.包含或取消重复的行 4.对组合查询结果排序 一、组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询&#xff08;多条SELECT语句&#xff09;&#xff0c;并将结果作为单个查…

C++动态规划经典案例解析之合并石子

1. 前言 区间类型问题&#xff0c;指求一个数列中某一段区间的值&#xff0c;包括求和、最值等简单或复杂问题。此类问题也适用于动态规划思想。 如前缀和就是极简单的区间问题。如有如下数组&#xff1a; int nums[]{3,1,7,9,12,78,32,5,10,11,21,32,45,22}现给定区间信息[…

【真题解析】系统集成项目管理工程师 2022 年下半年真题卷(综合知识)

本文为系统集成项目管理工程师考试(软考) 2022 年下半年真题&#xff08;全国卷&#xff09;&#xff0c;包含答案与详细解析。考试共分为两科&#xff0c;成绩均 ≥45 即可通过考试&#xff1a; 综合知识&#xff08;选择题 75 道&#xff0c;75分&#xff09;案例分析&#x…

【VScode推理模型部署】ONNX runtime

推理模型部署(一)&#xff1a;ONNX runtime 实践 VSCode配置之OnnxRuntime(CPU) && YOLOv7验证 简单来说&#xff0c;对于机器学习模型过程可分为训练迭代和部署上线两个方面&#xff1a; 训练迭代&#xff0c;即通过特定的数据集、模型结构、损失函数和评价指标的确…

国标GB28181安防监控视频平台EasyGBS新功能:批量绑定角色与取消设备

国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台&#xff0c;支持多路设备同时接入&#xff0c;并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。国标视频监控平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音…