Spring Cloud Wii 是一个用来 快速整合 Spring Cloud 与 异构微服务 的框架,与 Spring Cloud Netflix Sidecar 非常相似。目前支持的服务发现组件:Nacos、Consul。
Wii 与 Sidecar 的比较:
- Wii
- 支持 nacos、consul 两种服务发现组件
- 基于 spring cloud gateway 新一代的组件
- Sidecar
- 只支持 Eureka 服务发现组件
- 基于 Zuul 1.x 老一代的组件,SpringCloud 声明未来会逐步淘汰 Zuul
- Wii
原理:
- Wii 基于 SpringCloud Gateway 的扩展,在 gateway 基础上集成 Ribbon、Sentinel、Nacos Discovery 实现负载均衡、服务容错与服务注册
- Wii 根据配置的异构微服务的 IP、端口等信息,将异构微服务的 IP/Port 注册到服务发现组件上
- Wii 实现了 健康检查,Wii 会定时检测异构微服务是否健康。如果发现异构微服务不健康,Wii 会自动将代表异构微服务的 Wii 实例下线;如果异构微服务恢复正常,则会自动上线

- Wii 优缺点分析
- 优点:
- 接入简单,少量代码就可以将异构微服务整合到 Spring Cloud 生态
- 不侵入异构微服务源代码
- 缺点:
- 没接入一个异构服务实例,都需要额外部署一个 Wii 实例,增加了部署成本(有部署成本,但也几乎可以忽略不计。在 Kubernetes 环境中,可以将 Wii 实例和异构微服务作为一个 Pod 部署即可)
- 异构微服务调用 SpringCloud 微服务时,本质是把 Wii 当网关在使用,经过了一层转发,性能有一定的下降
- 优点:
