当前位置: 首页 > article >正文

java健康检查healthcheck

其实很多人会问,springclound里面不是有集成healthcheck么?

对,问的很好,但是往往很多小公司或者一些老的代码并不一定都是集成了springclound的。

但是作为服务治理很重要的一环,就必须要再cicd中加入这一环,才能健康的让服务引入流量

目的:

1. 有些隐藏的账号密码不掌握在我们手里,又不知道是否配置正确,可以在healthcheck中进行check, 如数据库,可以用select 1进行测试

2. 多数据源每个数据源是否配置正确?

3. 防止冷启动:数据库,redis等

做法:自定义一个controller进行单独供调用使用

@RestController
@RequestMapping(value = "/")
public class HealthCheckController {

    @Resource
    private HealthCheckMapper healthCheckMapper;
    @Resource
    private StringRedisTemplate stringRedisTemplate;

    /**
     * 健康检查:注意此接口不能被拦截器把异常吃掉
     */
    @GetMapping(value = {"healthCheck"})
    @ApiOperation(value = "健康检查", notes = "1.数据库检查,2.redis检查")
    public Resp healthCheck() {
        // 1.数据库检查 直接是select 1的sql
        healthCheckMapper.select1();
        // 多数据源可以在此切换数据源进行验证

        // 2.redis检查
        stringRedisTemplate.opsForValue().get("1");
        return Resp.success();
    }
}

另外,很多check可能直接根据code进行验证的,如果系统有统一拦截器,需要找出来,否则统一异常处理可能将该处异常吃掉,那么则该检查检查将没有什么意义了


http://www.kler.cn/a/298222.html

相关文章:

  • 数据库管理-第238期 23ai:全球分布式数据库-架构与组件(20240904)
  • 如何找到UI5 Tooling-UI5命令
  • springboot(IDEA)开发pom配置文件引用本地jar包
  • 开始一个WPF项目时的记忆重载入
  • 【Unity】【游戏开发】unity中快速导入VRM模型并应用动画
  • 沟通技巧网课笔记
  • 云计算实训43——部署k8s基础环境、配置内核模块、基本组件安装
  • 护眼台灯怎么选?儿童护眼灯推荐测评和护眼台灯十大排名教你买灯
  • 开发技巧(记录一下...)
  • 安全测试:全面指南!
  • VMware的三种网络模式及应用场景
  • 游戏的3C,Al
  • 828华为云征文|华为云Flexus X搭建借贷管理系统、二次开发借贷小程序 前端源码uniapp
  • elementUI之不会用
  • [数据集][目标检测]河道垃圾检测数据集VOC+YOLO格式2274张8类别
  • 揭秘MySQL窗口函数:数据分析的新利器
  • 理解 RabbitMQ:生产者、连接、通道、交换机、队列与消费者的消息流
  • 为什么每个进程都有一个页表
  • (详)Vue3 + Typescript 项目配置 eslint + prettier + husky + lint-staged
  • llvm使用