跳转到内容
云栖回顾 | 2024 云栖大会微服务和网关相关演讲材料点此了解

进阶指南

原理

  • 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 节点信息

Terminal window
$ 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"
}
}
}