如何快速集成微服务的健康检查,开箱即用
时光闹钟app开发者,请关注我,后续分享更精彩!
坚持原创,共同进步!背景
微服务的健康状态检查是感知服务可用性的常用手段,为快速发现系统问题提供了重要途径,是微服务体系建设中必不可缺的一环。
本文整理了springboot项目快速集成healthCheck的方式,开箱即用,希望对大家有所帮助。实现方式适用项目:springboot类型项目集成方式:springbootstarteractuator插件集成集成
添加maven依赖
springbootstarteractuator组件自动实现应用的健康检查接口,默认url为actuatorhealth
注意:actuator组件默认只对外开放health接口端点,对info、dump等端点生产环境禁止开放,预防信息泄露过多导致安全问题。!健康检查actuatorhealthdependencygroupIdorg。springframework。bootgroupIdspringbootstarteractuatorartifactIddependency
配置属性springboot启动会检查health的starter基础组件(redismongoes。。。),若发现有集成组件,health检查请求时,会一并检查相应组件的健康状况。1。屏蔽单个基础组件检查management。health。mail。enabled:falsemanagement。health。mongo。enabled:falsemanagement。health。redis。enabled:falsemanagement。health。solr。enabled:falsemanagement。health。elasticsearch。enabled:false2。屏蔽所有基础组件检查(redismongoes。。。),减少health接口频繁调用影响应用性能management:health:defaults:enabled:false3。健康检查url从actuatorhealth调整为healthz默认base路径从actuator路径改为management。endpoints。web。basepath:将health修改成healthzmanagement。endpoints。web。pathmapping。health:healthz
上面列了health一些关键属性配置,详细可参见注释说明。
springbootstarteractuator组件预置了很多功能,除了health,还有info、dump等丰富诊断接口,这些接口可以方便的帮忙我们了解系统运行时信息。但需要注意的是,这些接口同时也暴露了过多系统概况信息,在生产环境一定要慎用,线上环境通常只打开health,不同应用场景请按需选择使用。
另外,health健康检查作为服务应用的探活接口,访问频率通常比较高,因此,health接口要尽可能简单,避免过多基础组件的检查(redismongoes。。。),以免逻辑太重影响原有业务服务。验证
在springboot项目中按上面集成方式引入,启动服务,浏览器输入访问地址
http:{服务地址}actuatorhealth,返回状态200,表示集成成功,如下图
总结
介绍了springbootstarteractuator的引入步骤。开箱即用,快速实现health健康检查接口到项目的集成。同时,需关注组件关键配置属性,注意生产环境系统信息的安全泄露问题,屏蔽不需要的信息接口。
最后,希望本文整理能对大家有所帮助和参考,若有疑问,欢迎留言讨论。