SpringCloud的基本组件(Ribbon、OpenFeign)

一、Ribbon

1、Ribbon是什么?

在这里插入图片描述

2、 Ribbon能干什么?

在这里插入图片描述

在这里插入图片描述 3、Ribbon与Nginx的区别

  • Nginx是服务器负载均衡,客户端所有请求都会交给Nginx,然后由Nginx实现转发请求。Nginx在服务的消费方和提供方之间使用独立的LB设施,由该设施负责把访问请求通过某种策略转发值服务的提供方。
  • Ribbon是客户端负载均衡,Ribbon将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务。

4、自定义Ribbon

IRule的实现类如下(默认是轮询):

在这里插入图片描述

二、Feign

1、Feign是什么?

在这里插入图片描述

2、 Feign能干什么? 

在这里插入图片描述

在这里插入图片描述

 3、Feign和OpenFeign的区别

在这里插入图片描述

 4、OpenFeign与Ribbon在服务调用时的区别

Ribbon通过在消费者模块(springcloud-consumer-dept-80)中注入的restTemplete去远程访问服务提供者(springcloud-provider-dept-8001)的方法(通过服务名来访问)

 OpenFeign通过springcloud-api模块下自定义接口DeptClientService,让所有消费模块可用。该接口中的方法与服务提供者(springcloud-provider-dept-8001)的controller接口方法是一样的。

在OpenFeign的消费模块中,只需要注入DeptClientService接口对象,即可调用该接口中的方法,然后该方法会根据@FeignClient(value = "service-provider-dept")注解找到注册中心的服务,然后进一步调用服务提供模块中的方法。

5、OpenFeign中的两个重要注解@FeignClient和@EnableFeignClients的作用

@FeignClient作用于Service接口上,如果服务提供方已经注册到注册中心了,那么name或者value的值为服务提供方的服务名称

 @EnableFeignClients有三个作用:

  1. 引入了FeignClientsRegistrar;
  2. 指定扫描了FeignClient的包信息,就是指定了FeignClient接口类所在的包名;
  3. 指定了FeignClient接口类的自定义配置类。

FeignClientsRegistrar 用来处理 @FeignClient 注解修饰的 FeignClient 接口类,将这些接口类的 BeanDefinition 注册到 Spring 容器中,这样就可以使用 @Autowired 等方式来自动装载这些 FeignClient 接口类的 Bean 实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值