主页 > 互联网  > 

SpringCloudLoadBalancer详解

SpringCloudLoadBalancer详解
一、介绍

Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器,抽象和实现,用来替代Ribbon(已经停更),

二、Ribbon和Loadbalance 对比 组件 组件提供的负载策略 支持负载的客户端 Ribbon 随机 RandomRule轮询 RoundRobinRule 重试 RetryRule最低并发 BestAvailableRule可用过滤 AvailabilityFilteringRule响应时间加权重 ResponseTimeWeightedRule区域权重 ZoneAvoidanceRule Feign或openfeign、RestTemplate Spring Cloud Loadbalancer RandomLoadBalancer 随机(高版本有,此版本没有RoundRobinLoadBalancer 轮询(默认) Ribbon 所支持的、WebClient

LoadBalancer 的优势主要是,支持响应式编程的方式异步访问客户端,依赖 Spring Web Flux 实现客户端负载均衡调用。

三、整合LoadBlance

注意如果是Hoxton之前的版本,默认负载均衡器为Ribbon,需要移除Ribbon引用和增加配置spring.cloud.loadbalancer.ribbon.enabled: false。

1、升级版本 Spring Cloud Alibaba Spring cloud Spring Boot 2.2.6.RELEASE Spring Cloud Hoxton.SR9 2.3.2.RELEASE 2、移除ribbon依赖,增加loadBalance依赖 <!--nacos-服务注册发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <exclusions> <!--将ribbon排除--> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> <!--添加loadbalanncer依赖, 添加spring-cloud的依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> 四、自定定义负载均衡器 package com.msb.order.loadbalance; import org.springframework.beans.factory.ObjectProvider; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.reactive.DefaultResponse; import org.springframework.cloud.client.loadbalancer.reactive.EmptyResponse; import org.springframework.cloud.client.loadbalancer.reactive.Request;
标签:

SpringCloudLoadBalancer详解由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SpringCloudLoadBalancer详解