• 架构模式: 健康检查API


    架构模式: 健康检查API

    上下文

    您已应用微服务架构模式。有时,服务实例可能无法处理仍在运行的请求。例如,它可能已用完数据库连接。发生这种情况时,监控系统应生成警报。此外,负载平衡器或服务注册表不应将请求路由到失败的服务实例。

    问题

    如何检测正在运行的服务实例无法处理请求?

    关注点

    • 服务实例失败时应生成警报
    • 应将请求路由到工作服务实例

    结论

    服务具有返回服务运行状况的运行状况检查API端点(例如HTTP /运行状况)。API端点处理程序执行各种检查,例如

    • 服务实例使用的基础结构服务的连接状态
    • 主机的状态,例如磁盘空间
    • 应用特定逻辑

    运行状况检查客户端 - 监视服务,服务注册表或负载平衡器 - 定期调用端点以检查服务实例的运行状况。

    例子

    微服务示例应用程序是应用程序实现运行状况检查API的示例。它是用Scala编写的,使用Spring Boot和Spring Cloud作为微服务机箱。它们提供各种功能,包括健康检查端点。端点由Spring Boot Actuator模块实现。它配置一个/ health HTTP端点,用于调用可扩展的运行状况检查逻辑。

    要启用/ health端点,首先将执行器定义为依赖项:

    dependencies {
      compile "org.springframework.boot:spring-boot-starter-actuator"
    

    其次,启用Spring Boot自动配置:

    @SpringBootApplication
    class UserRegistrationConfiguration {
    

    此时,您的应用程序将具有具有默认行为的运行状况检查端点。您可以通过定义一个或多个实现HealthIndicator接口的Spring bean来自定义此行为:

    class UserRegistrationConfiguration {
      @Bean
      def discoveryHealthIndicator(discoveryClient : EurekaClient ) : HealthIndicator = new DiscoveryHealthIndicator(discoveryClient)
    

    HealthIndicator必须实现health()方法,该方法返回Health值。

    结果上下文

    这种模式具有以下好处:

    • 运行状况检查端点可以定期测试服务实例的运行状况

    这种模式有以下缺点:

    • 运行状况检查可能不够全面,或者服务实例可能在运行状况检查之间失败,因此请求仍可能路由到失败的服务实例

    关联模式

    • 服务注册表 - 服务注册表调用运行状况检查端点
  • 相关阅读:
    自己写个pager控件
    再忙也不能忽视的东西
    ACE_Reactor学习2 Reactor类API的功能分类
    ACE_Reactor学习3 ACE_Reactor初始化相关的实现分析
    ACE_Reactor学习1 总体计划
    windows下信号机制的学习
    咋了
    C#编写Window服务
    Javascript引用类型小结,及字符串处理
    .NET调用控制台下生成的exe文件,传参及获取返回参数
  • 原文地址:https://www.cnblogs.com/paxlyf/p/11290166.html
Copyright © 2020-2023  润新知