feign

Posted feixiangdecainiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了feign相关的知识,希望对你有一定的参考价值。

feign将rest请求隐藏,伪装成类似springmvc的controller一样,拼接URL等操作交给feign去做

 

1、引入openfeign的jar包

2、启动类添加注解

@EnableFeignClient

3、写对应的接口

@FeignClient("user-service")
public interface userclient{
    @GetMapping("user/{id}")
    User queryById(@PathVariable("id") Long id);    
}

4、使用的时候直接注入使用

openfeign已经包含了ribbon和Hystrix,不需要导入Hystrix的包

feign的熔断机制

 

 

zuul网关 

路由功能简单使用,注意的是放问的时候需要加上匹配的前缀

zuul:
    routes:
        hehe:
             path: /uer-service/**
             url: http://localhost:8081

面向服务的一种配置(拉取服务列表)

引入eureka的依赖,

eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka
zuul:
  routes:
    haha:
      path: /user-service/**
      serviceId: user-service

黄色部分的简化的配置方式,可以不写。
    user-service: /user/**
下面是默认的形式,zuul会自动拉取
    user-service: /user-service/**
  ignored-service: 需要忽略的服务(集合形式使用 -打头)
    - consumer-service
zuul:
  routes:
    user-service:
      path: /user/**
      serviceId: user-service
      strip-prefix: true //去除前缀user

 

用户的请求到达前端的zuul,接着会匹配path,结果找到对应的服务id,拉去服务列表,通过负载均衡,最后确定服务的实例,注意feign实现里内部的负载均衡

 

权限控制(zuul过滤器实现)

过滤器类型:前置、后置、错误、路由

过滤器的优先级

要不要过滤

过滤逻辑

 过滤器的生命周期

技术图片

前置过滤器中可以配置限流,

 

以上是关于feign的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud学习--- Feign详解(附代码压缩包)

SpringCloud学习--- Feign详解(附代码压缩包)

一:Feign解决的问题

Feign入门之快速实战

spring cloud中如何通过feign调整负载均衡规则

SpringCloudAlibaba微服务调用组件-Feign