第三方健康端点最佳实践

Third party health endpoint best practices

我正在开发一个应用程序并使用 spring-boot-application 作为我的健康端点,我的应用程序正在与我需要包含在我的健康检查中的几个第三方服务交互,问题是当服务没有响应我一直等到 ping 超时,所以我知道它们不可用,这需要很长时间,我想避免这种情况。

一个解决方案是运行并行检查所有服务,这将显着减少超时的时间,但我仍然有一个超时的瓶颈。 另一种解决方案是定期 (使用调度程序) 在后台持续检查服务并缓存检查的最后结果,因此当我们的监视器请求健康信息时,健康端点将 return兑现结果

有没有更实用的解决办法?或者对于这种情况是否有任何已知的最佳实践?

我想post我是如何标记这个问题的:

由于该应用程序依赖于第三方并且没有与这些第三方的连接,因此该应用程序不被视为功能正常(不是微服务),因此无法逃避检查这些第三方的健康状况

为了解决这个问题,我做了以下事情:

1- 识别关键的第三方,应用程序连接到各种第三方,其中一些是关键的,一些不是(很可能这将涉及业务决策),因此识别关键的第三方很重要关键第三方,对于非关键第三方,我将他们排除在健康检查之外

2- 定期检查关键第三方的健康状况并将其缓存,当然这会导致获取健康状况的延迟,因此应该商定检查的时间,对我来说可以有一个小的延迟(3 分钟)所以这是我的时间间隔