我正在开发一个应用程序并使用spring-boot-application作为我的健康端点,我的应用程序正在与我需要在我的健康检查中包含的几个第三方服务进行交互,问题是当服务没有响应时我一直等到ping超时所以我知道它们不可用,这需要很长时间,我想避免这种情况。
一种解决方案是并行运行对服务的所有检查,这将显着减少超时的时间,但仍然存在一个超时的瓶颈。另一个解决方案是定期(在调度程序中)继续检查后台服务并缓存检查的最后结果,这样当我们的监视器请求健康信息时,健康端点将返回兑现结果。
还有更实用的解决方案吗?或者这种情况是否有任何已知的最佳实践?
谢谢你的帮助。
我想发布我如何调整此问题:
由于该申请依赖于第三方,并且没有与这些第三方的连接,该申请不被视为功能性(不是微服务),没有逃避检查这些第三方的健康状况
为了解决这个问题,我做了以下事情:
1-识别关键的第三方,应用程序连接到各个第三方,其中一些是关键的,其中一些不是(很可能这将涉及业务决策),因此识别关键的第三方,对于非关键的第三方我将他们排除在健康检查之外
2-定期检查关键第三方的健康状况并对其进行缓存,这将导致获取健康状况的延迟,因此应该就检查的时间达成一致,对我来说可以有一点延迟( 3分钟)所以这是我的时间间隔