如何使用SpringCloud中重磅推荐的负载均衡器SpringCloudLoadBalancer(下文简称SCL),如何扩展负载均衡策略?你将从本文中获取到答案
快速上手SCL
如果项目中想使用SCL,则仅需要添加如下maven依赖即可
SCL是构建服务发现的基础上,由于目前SpringCloudAlibaba并未兼容SCL(具体兼容方案可以参考pig),当然你可以选择使用Eureka测试。若将RestTemplate和客户端负载均衡结合使用,在bean定义上增加
LoadBalanced注解即可.个性化负载均衡策略目前版本(springcloud)内置轮询、随机的负载均衡策略,默认轮询策略。当然可以通过LoadBalancerClient注解,指定服务级别的负载均衡策略
自定义负载均衡策略
通过上文可知,目前SCL支持的负载均衡策略相较于Ribbon还是较少,需要开发者自行实现,好在SCL提供了便捷的API方便扩展使用。这里演示自定义一个基于注册中心元数据的灰度负载均衡策略。定义灰度负载均衡策略
针对客户端注入灰度负载均衡策略
服务实例定义版本号
请求携带版本号,测试使用
优化负载均衡策略注入
如上文所述,所有的个性化负载策略都需要手动通过LoadBalancerClient注入非常的不方便。我们可以参考LoadBalancerClients的批量注入逻辑构造自己的BeanRegistrar
微服务灵活的软件架构springbootspringcloud微服务实战京东查看已下架