【问题标题】:Third party health endpoint best practices [closed]第三方健康端点最佳实践[关闭]
【发布时间】:2017-12-14 09:40:23
【问题描述】:

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

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

还有更实用的解决方案吗?或者对于这种情况是否有任何已知的最佳实践?

【问题讨论】:

    标签: spring spring-boot spring-mvc spring-boot-actuator health-monitoring


    【解决方案1】:

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

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

    为了解决这个问题,我做了以下操作:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多