什么是Ribbon

12 篇文章 0 订阅
8 篇文章 0 订阅

Ribbon的作用

      Ribbon是springcloud下的客户端负载均衡器,消费者在通过服务别名调用服务时,需要通过Ribbon做负载均衡获取实际的服务调用地址,然后通过httpclient的方式进行本地RPC远程调用。

Ribbon原理

    Ribbon负载均衡主要是轮询算法,分为以下几步:

    1.根据服务别名,从eureka获取服务提供者的客户端列表

    2.将列表缓存到本地,即消费者客户端的jvm中

    3.获取提供者客户端下标(总请求数%服务提供者数),得到调用的服务客户端的实际地址

与Nginx的区别

    Nginx是用于服务器的,主要是统一将外部客户端(浏览器)的请求,通过负载均衡算法分发到具体的应用服务器。

    Ribbon是应用于微服务框架下的,在客户端(服务消费者)通过负载均衡算法获取服务提供者的客户端地址,称之为客户端负载均衡器。

Ribbon对RestTemplate的支持

    消费者调用服务目前主要有两种方式,通过RestTemplate和Feign,Feign默认就开启Ribbon,不需要额外的设置,RestTemplate需要@LoadBalanced注解开启Ribbon。

    RestTemplate

    一般RestTemplate是作为bean注入到Spring容器,通过@LoadBalanced注解开启Ribbon服务,并使用服务别名的方式进行调用即可,不需要指定服务提供者的具体地址。

@Bean
@LoadBalanced
RestTemplate restTemplate(){
    return new RestTemplate();
}
@RequestMapping("/getHi")
public String getHi(){
    return restTemplate.getForObject("http://eureka-client/hi",String.class);
}

 

关键参数

ReadTimeout  -- 建立连接的超时设置

ConnectTimeout  -- 建立连接后获取可用资源的超时设置

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值