Skip to content

Latest commit

 

History

History
89 lines (73 loc) · 2.57 KB

File metadata and controls

89 lines (73 loc) · 2.57 KB
title keywords description
进阶指南
Spring Cloud Alibaba
Sidecar
sidecar.

原理

  • spring-cloud-starter-alibaba-sidecar 根据配置的异构微服务的 IP、端口等信息,将异构微服务的 IP/端口注册到服务发现组件上。

  • spring-cloud-starter-alibaba-sidecar 实现了异构服务的健康检查, spring-cloud-starter-alibaba-sidecar 会定时检测异构微服务是否健康。如果发现异构微服务不健康,Sidecar 会自动将代表异构微服务的 Sidecar 实例下线;如果异构微服务恢复正常,则会自动上线。最长延迟是 30 秒,详见 Spring Cloud Alibaba SidecarChecker#check。

优缺点分析

spring-cloud-starter-alibaba-sidecar 的设计和 spring-cloud-netflix-sidecar 基本一致,优缺点和 spring-cloud-netflix-sidecar 的优缺点也是一样的。

优点:

  • 接入简单,几行代码就可以将异构微服务整合到 Spring Cloud 微服务生态

  • 不侵入原代码

缺点:

  • 每接入一个异构微服务实例,都需要额外部署一个 spring-cloud-starter-alibaba-sidecar 实例,增加了部署成本(虽然这个成本在 Kubernetes 环境中几乎可以忽略不计(只需将 spring-cloud-starter-alibaba-sidecar 实例和异构微服务作为一个 Pod 部署即可));

  • 异构微服务调用 Spring Cloud 微服务时,本质是把 spring-cloud-starter-alibaba-sidecar 当网关在使用,经过了一层转发,性能有一定下降。

EndPoint 信息

请求 http://127.0.0.1:8070/actuator/health 地址可以看到 EndPoint 节点信息

$ curl http://127.0.0.1:8070/actuator/health

响应结果:

{
  "status": "UP",
  "components": {
    "discoveryComposite": {
      "status": "UP",
      "components": {
        "discoveryClient": {
          "status": "UP",
          "details": {
            "services": ["node-service"]
          }
        }
      }
    },
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 107374178304,
        "free": 18797641728,
        "threshold": 10485760,
        "path": "E:\\open_sources\\spring-cloud-alibaba\\.",
        "exists": true
      }
    },
    "nacosDiscovery": {
      "status": "UP"
    },
    "ping": {
      "status": "UP"
    },
    "reactiveDiscoveryClients": {
      "status": "UP",
      "components": {
        "Simple Reactive Discovery Client": {
          "status": "UP",
          "details": {
            "services": []
          }
        }
      }
    },
    "refreshScope": {
      "status": "UP"
    },
    "sidecar": {
      "status": "UP"
    }
  }
}