LoadBalancer
客户端负载均衡组件。
负载均衡
- 服务端负载均衡
- 客户端负载均衡
客户端负载均衡技术往往需要依赖服务发现技术来获取服务列表。
@LoadBalancer 注解的作用
在启动时候利用了自动装配机制,分三步向 WebClient 塞了一个特殊的 Filter,通过这个 Filter 实现了负载均衡功能。
- 声明负载均衡过滤器
- 声明后置处理器
- 添加过来到 WebClient
Filter 是一个搭在 WebClient 和负载均衡策略之间的桥梁,在 WebCLient 发出请求前,过滤器会根据负载均衡策略决定这个请求要发配到哪一台服务器。
LoadBalance 内置了两种负载均衡策略
- Random 随机
- Round 轮询
可以通过实现 ReactorServiceInstanceLoadBalancer 接口来自定义负载均衡策略。
什么是金丝雀测试? Canary
灰度测试的一种。在修改代码后,将代码部署到几个指定的机器上,让只带着测试流量标记的请求转发到这几台服务器上,正常流量打到其它机器上。
@LoadBalancerClient 注解是 Spring Cloud 中用来为特定服务配置自定义负载均衡器的注解。 能够让开发者为指定的服务单独指定负载均衡器。