下游服务运行状况检查

时间:2019-01-10 11:38:29

标签: java api spring-boot microservices health-monitoring

我想编写运行状况检查,检查我的所有下游服务所消耗的服务。我们可以轻松地为GET方法编写代码,它不会影响任何内容。但是如何在POST / PUT方法中更改现有值呢?

1 个答案:

答案 0 :(得分:0)

根据您所在域的要求,您对健康检查的期望可能会有所不同。可能是:

  1. 服务正在运行。您仅调用服务的一种方法即可仅检查返回码。您只想确保整个服务都不会崩溃,等等。这是运行状况检查的最常见形式。
  2. 特定于功能。这就是您的想法-调用服务并评估返回参数。
  3. 全面测试。调用该服务的授权覆盖范围与授权部署前相同。
  4. 内部服务。该服务提供了用于运行状况检查的特殊终结点,该端点提供了服务运行状况的详细视图。

在大多数分布式系统中,运行状况检查仅在服务级别上执行(选项1),在这种情况下,选择哪个端点无关紧要,有时返回的内容也无关紧要(可能是错误例如,只要不是超时)。

测试范围越深,执行时间就越多,执行测试的频率就越低。

最彻底的健康检查将是完整的单元测试(例如,发布/更改和删除不同的数据集)。但是,如果这不希望对性能产生影响,则可以依靠以下几种方法之一:

  1. 使用非法参数发布/放置。只是要检查服务是否返回预期的错误代码(例如,与超时相比)。
  2. 在您的服务中实施测试模式,例如尽管可以传递一个特殊参数或具有可以运行内部测试的特殊端点。
  3. 让服务实现业务目的,以便完整的服务不仅具有POST / PUT方法,还具有GET方法。然后,您仅使用GET来确定服务的运行状况。