跳到主要内容

LoadBalancer

客户端负载均衡组件。

负载均衡

  • 服务端负载均衡
  • 客户端负载均衡

客户端负载均衡技术往往需要依赖服务发现技术来获取服务列表。

@LoadBalancer 注解的作用

在启动时候利用了自动装配机制,分三步向 WebClient 塞了一个特殊的 Filter,通过这个 Filter 实现了负载均衡功能。

  1. 声明负载均衡过滤器
  2. 声明后置处理器
  3. 添加过来到 WebClient

Filter 是一个搭在 WebClient 和负载均衡策略之间的桥梁,在 WebCLient 发出请求前,过滤器会根据负载均衡策略决定这个请求要发配到哪一台服务器。

LoadBalance 内置了两种负载均衡策略

  • Random 随机
  • Round 轮询

可以通过实现 ReactorServiceInstanceLoadBalancer 接口来自定义负载均衡策略。

什么是金丝雀测试? Canary

灰度测试的一种。在修改代码后,将代码部署到几个指定的机器上,让只带着测试流量标记的请求转发到这几台服务器上,正常流量打到其它机器上。

@LoadBalancerClient 注解是 Spring Cloud 中用来为特定服务配置自定义负载均衡器的注解。 能够让开发者为指定的服务单独指定负载均衡器。