自定义 Hea1thIndicator |学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习自定义 Hea1thIndicator

开发者学堂课程【SpringBoot 快速掌握 - 高级应用:自定义 Hea1thIndicator】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/613/detail/9325


自定义Hea1thIndicator

内容介绍

一、定制端点信息

二、健康状态指示器


一、定制端点信息

1.health

在访问端点中,存在一个端点:health

(1)halth 的作用

进行应用中的组件健康检查

(2)health 的访问

//将端点更改为8181端口

localhost:8181//manage/health

//其为操作者返回当前应用每个组件的健康状态,但此处仅默认存在 diskSpace-即磁盘空间的默认状态。

{

status:"UP",

- diskSpace: {

status: "UP",

total: 126682750976,

free: 42200621056,

threshold: 10485760

}

}

2.spring-boot-actuator

另外,也可自行定制或使用 spring-boot 中现成完成配置的健康状态。

(1)包含内容

所有的端点配置信息都存在于 spring-boot-actuator 包之下,存在众多的健康状态组件,如:MongoHealthIndicator、RabbitHealthIndicator、RedisHealthIndicator

(2)生效

编写相应 start 后进行生效

(3)测试

//引入 Redis 的相关 start

//配置 Redis 连接信息

spring.redis.host=localhost  //本机未安装 redis,此时为错误配置

//启动引用

//检查健康信息,此时 redis 存在错误

{

status:"UP",

-diskSpace: {

status: "UP",

total: 126682750976,

free: 4220062 1056,

threshold: 10485760

}

}

- redis: {

status: "DOWN",  

error:" org. springf ramework.data redis. RedisConnect ionFailureException:Cannot get Jedis connecticn; nested exception is redis.clients.jedis.exceptions.JedisCormnectionException: Could not get aresource from the pool"

}

}

//将 redis 连接信息书写正确,即可使其正常运行

//将连接信息书写为已安装 redis 的远程主机地址

spring.redis.host=118.24.44.169

//进行重新启动

//若 redis 一切工作正常,代表着其健康状态同样正常

//进行刷新,此时 redis 为 UP 状态

{

status:"UP",

- diskSpace: {

status: "UP",

total: 126682750976,

free: 42164674560

threshold: 10485760

}

}

-redis: {

status: "UP",  

version “4.0.9”

}

}

//监控中存在 RedisHealthIndicator,检查获取 redis 是否能够连接


二、健康状态指示器

1.目的

在后续开发中存在众多服务组件,欲拥有对应的实时健康状态检查、访问health时能够反馈组件健康信息,则应进行自定义健康状态检查指示器

2.操作步骤

(1)大致方向

编写一个实现  HealthIndactor 接口的指示器

指示器名字:xxxHealthIndicator

例如:位于 RedisHealthIndicator 中,则其指示器名字应为 RedisHealthIndicator

加入容器中

(2)实际操作

编写指示器:healthMyAPPHealthIndactor

@Component

public calss healthMyAPPHealthIndactor implements Health {

@Override

public Health health(){

//自定义检查方法

return null;

}

}

//若检查结果为健康

return Health.up().build()

//若检查不健康

return Health.down().withDetail(“msg”,“服务异常”).build();

}

}

//进行服务的启动

//检查健康状况信息

//刷新

{

status:"DOWN",

-MyApp: {

status: "DOWN",

total:126682750976,

free:42080505856

threshold:10485760

}

}

-redis: {

status: "UP",  

version “4.0.9”

}

}

//此时以除  HealthIndactor 以前的部分作为指示器名

相关文章
|
SQL Java 数据库连接
mybatis报错 resultMapException
mybatis报错 resultMapException
637 0
mybatis报错 resultMapException
|
3月前
|
人工智能 自然语言处理 Nacos
Nacos 3.0:微服务与AI融合的全新治理平台
Nacos 3.0:微服务与AI融合的全新治理平台
209 46
【YashanDB知识库】解压安装包时报错"tar:Error is not recoverable"
【YashanDB知识库】解压安装包时报错"tar:Error is not recoverable"
|
10月前
|
机器学习/深度学习 算法 安全
从方向导数到梯度:深度学习中的关键数学概念详解
方向导数衡量函数在特定方向上的变化率,其值可通过梯度与方向向量的点积或构造辅助函数求得。梯度则是由偏导数组成的向量,指向函数值增长最快的方向,其模长等于最速上升方向上的方向导数。这两者的关系在多维函数分析中至关重要,广泛应用于优化算法等领域。
504 36
从方向导数到梯度:深度学习中的关键数学概念详解
|
6月前
|
存储 JSON Java
深入理解 JWT 中 Claims 的设计及其合理性
JWT(JSON Web Token)中 Claims 是存储用户或业务信息的关键部分。JJWT 库通过 `setClaims` 方法支持传入 `Map<String, Object>` 或 `Claims` 对象,确保灵活性与高效性。本文从源码角度剖析 JWT Claims 的设计思想,介绍三种实现方式:使用 `HashMap`、`DefaultClaims` 和逐个添加声明,并分析其合理性。这种基于 Map 的设计符合 JSON 格式特性,易于扩展且性能优越,为开发者提供灵活的选择,满足不同业务需求。
304 2
|
9月前
|
运维 监控 Cloud Native
构建深度可观测、可集成的网络智能运维平台
本文介绍了构建深度可观测、可集成的网络智能运维平台(简称NIS),旨在解决云上网络运维面临的复杂挑战。内容涵盖云网络运维的三大难题、打造云原生AIOps工具集的解决思路、可观测性对业务稳定的重要性,以及产品发布的亮点,包括流量分析NPM、网络架构巡检和自动化运维OpenAPI,助力客户实现自助运维与优化。
|
机器学习/深度学习 自然语言处理 数据挖掘
【NLP】深度学习的NLP文本分类常用模型
本文详细介绍了几种常用的深度学习文本分类模型,包括FastText、TextCNN、DPCNN、TextRCNN、TextBiLSTM+Attention、HAN和Bert,并提供了相关论文和不同框架下的实现源码链接。同时,还讨论了模型的优缺点、适用场景以及一些优化策略。
1236 1
|
Kubernetes 应用服务中间件 nginx
[kubernetes]二进制部署k8s集群-基于containerd
[kubernetes]二进制部署k8s集群-基于containerd
657 0
|
存储 监控 Java
了解Java中的NIO编程
了解Java中的NIO编程
|
消息中间件 Kafka Apache
【Kafka专栏】windows搭建Kafka环境 & 详细教程(01)
【Kafka专栏】windows搭建Kafka环境 & 详细教程(01)
934 2