检查是否能访问,检查数据库状态,检查MQ状态,检查其他模块是否正常
两种方式:
方式一:检查进程,就是让 java 打印本机的所有进程,然后判断 mq、mysql 这些进程是否还在,或者让 java 调用 service/systemctl 来判断对应的服务是否正常。但是这种方式要让 java 和这些服务在同一台机器才能,对于 web 后端场景,是不可能在同一台机器的
方式二:连通性检查,就是让 java 连接 mq/mysql ,看看连不连的上
15 回答8.4k 阅读
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
1 回答3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
如果使用了Spring框架的话,可以通过扩展actuator来检查程序使用的中间件状态。
它本身已经提供了一些常见中间件的检测,类似mysql,redis,mongo等,只需要application里面配置好相关链接信息就可以。
对于另外一些没有提供的,比如RocketMQ,可以通过implements HealthIndicator接口,实现health方法,进行扩展。
通常health方法,可以通过调用中间件提供的相关http接口,或者写入数据,读取,然后再删除的方式,这个要具体的中间件具体看了。
如果没使用Spring框架的话,可以参考一下Spring actuator的源码。
题外话,监控者程序(java检查服务),通常也需要被监控,所以更系统一些的监控平台,可以通过prometheus,grafana,elastic等来搭建