当前位置: 首页 > 知识库问答 >
问题:

java检查服务,中间件(MQ),数据库是否正常?

李明贤
2023-05-10

检查是否能访问,检查数据库状态,检查MQ状态,检查其他模块是否正常

共有3个答案

屈晨
2023-05-10

如果使用了Spring框架的话,可以通过扩展actuator来检查程序使用的中间件状态。
它本身已经提供了一些常见中间件的检测,类似mysql,redis,mongo等,只需要application里面配置好相关链接信息就可以。
对于另外一些没有提供的,比如RocketMQ,可以通过implements HealthIndicator接口,实现health方法,进行扩展。
通常health方法,可以通过调用中间件提供的相关http接口,或者写入数据,读取,然后再删除的方式,这个要具体的中间件具体看了。

如果没使用Spring框架的话,可以参考一下Spring actuator的源码。

题外话,监控者程序(java检查服务),通常也需要被监控,所以更系统一些的监控平台,可以通过prometheus,grafana,elastic等来搭建

令狐增
2023-05-10

两种方式:

方式一:检查进程,就是让 java 打印本机的所有进程,然后判断 mq、mysql 这些进程是否还在,或者让 java 调用 service/systemctl 来判断对应的服务是否正常。但是这种方式要让 java 和这些服务在同一台机器才能,对于 web 后端场景,是不可能在同一台机器的

方式二:连通性检查,就是让 java 连接 mq/mysql ,看看连不连的上

孙朗
2023-05-10

连接测试,如果能连上就是正常

 类似资料:
  • 我正在使用: null 协商超时40000 使用Phoenix queryserver和./sqlline-thin.py(从任何机器上,甚至从SQuirrel上)都可以很好地工作。 因此,我的问题是,我如何检查凤凰城是否与HBase安装良好? 也可能只是动物园管理员的问题? 谢谢,

  • 问题内容: 将Apache Derby与Java结合使用(J2ME,但我认为这没有什么不同),是否有任何方法可以检查数据库是否已经存在并包含表? 问题答案: 除了MySQL之外,我什么都不知道,只有很少的解决方法,这与MySQL具有IF EXIST的功能不同。 您要做的是,尝试连接数据库,如果不可能的话。在成功建立连接之后,您可以执行简单的选择,例如SELECT count(*)FROM TABL

  • 问题内容: 建立连接后是否可以检查(MySQL)数据库是否存在。 我知道如何检查数据库中是否存在表,但是我需要检查数据库是否存在。如果没有,我必须调用另一段代码来创建它并填充它。 我知道所有这些听起来都不太优雅-这是一个快速又肮脏的应用程序。 问题答案: 如果您只想知道数据库是否存在,以免在尝试创建数据库时出错,只需使用(From here):

  • 问题内容: 我需要使用SQL查询来检查数据库是否完全为空(无表)。如何才能做到这一点? 谢谢您的帮助! 问题答案: 将返回数据库中表(或视图)的实际数量。如果该数字为0,则没有表。

  • 我对微服务世界非常陌生,尤其是vertX。我希望我的顶点启动无论如何,即使没有可用的数据库连接(例如,配置中缺少数据库URL)。我已经设法做到了这一点,我的顶点开始了。 现在的问题是,我希望我的verticle注意到数据库连接何时再次可用并连接到它。我该怎么做?我考虑创建另一个垂直链接“DatabaseVerticle.java”,它将在事件总线上发送当前的DB配置,我的初始垂直链接将使用此消息,

  • 我正在将行插入房间数据库,我想检查该行是否已成功插入。 这是我的刀 当我插入一行时,响应为1、2、3,依此类推。。所以它返回的是(是这样吗?) 因此,需要检查行是否正确插入。 我是否可以检查插入的rowId是否大于0,然后将其成功插入数据库。 注意:我得到的结果是1,2,3等,应该是rowId。 请建议这种方法是否正确?基本上,如果插入不成功,我想阻止用户继续 谢谢你的建议和意见