栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

(二)SpringCloud之负载均衡——Netflix Ribbon

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(二)SpringCloud之负载均衡——Netflix Ribbon

首先你看这一章的时候需要已经阅读了第一章,否则有点接不上哟

(一)SpringCloud之服务发现——Netflix Eureka_馒头花卷儿的博客-CSDN博客SpringCloud之服务发现——Netflix Eurekahttps://blog.csdn.net/suxiexingchen/article/details/125153278其实上一张最后使用的就是Ribbon

这里呢我们将延续前一章讲的,继续讲Rbiion

回顾一下,使用Ribbon的关键一步就是在启动类的创建RestTemplate上添加了一个@LoadBalanced注解

这个注解简单来说:

  • @LoadBalanced注解是来自cloud包下的一个注解
  • 这个注解就是让某一个东西拥有负载均衡的能力
  • 负载均衡的机制是轮询就是一个服务一次轮着来(但是第一次启动不分先后,随机哪个是哪个然后开始轮询,能明白吗?就是例如A,B,C并不一定从A开始ABC也有可能从C开始CAB)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableEurekaClient
public class EurekaClientProducerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaClientProducerApplication.class, args);
    }

    
    @LoadBalanced//支持负载均衡
    @Bean
    public RestTemplate rest() {
        return new RestTemplate();
    }
}

负载均衡策略,常见的有:

策略类  命名描述
RandomRule随机策略随机选择server
RoundRobinRule轮询策略按照顺序选择server(ribbon默认策略)
RetryRule重试策略在一个配置时间段内,当选择server不成功,则一直尝试选择一个可用的server
BestAvailableRule最低并发策略逐个考察server,如果server断路器打开,则忽略,再选择其中并发链接最低的server
AvailabilityFilteringRule可用过滤策略过滤掉一直失败并被标记为circuit tripped的server,过滤掉那些高并发链接的server(active connections超过配置的阈值)
ResponseTimeWeightedRule响应时间加权重策略根据server的响应时间分配权重,响应时间越长,权重越低,被选择到的概率也就越低。响应时间越短,权重越高,被选中的概率越高,这个策略很贴切,综合了各种因素,比如:网络,磁盘,io等,都直接影响响应时间
ZoneAvoidanceRule区域权重策略综合判断server所在区域的性能,和server的可用性,轮询选择server并且判断一个AWS Zone的运行性能是否可用,剔除不可用的Zone中的所有server
这里啊其实你是不是有个疑问,就是我没有引入Ribbon的包啊怎么就可以使用呢?

其实是因为Eurake以来了Ribbon来开一下依赖图

 

这里提示一下
  • ribbon从2019年5月份后就不维护了,后期loadbalancer会成为主流。
  • 目前还是ribbon用的多。
  • Loadbalancer支持ribbon。
  • ribbon和loadbalancer都是springcloud的负载均衡组件
  • ribbon是Netflix开源的基于HTTP和TCP等协议负载均衡组件,loadBalancer是SpringCloud出的,根据服务id获取负载均衡器rpc地址。
  • Ribbon的使用需要代码里手动调用目标服务,loadBalancer底层原理是默认调用ribbon的实现客户端负载均衡

 

 这篇,没有写什么代码实现,上一章已经有了代码实现,这里主要解决一下上一章的一些疑问。

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/969893.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号