openFeign

本文介绍Feign声明式Web服务客户端的使用方法,包括如何创建接口并添加注解实现微服务间的调用,以及配置负载均衡和日志级别。

描述:Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。
使用:

1、 微服务调用接口+@FeignClient

@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")   //CLOUD-PAYMENT-SERVICE是服务提供者注册到eureka的服务名称
public interface PaymentFeignService {

    @GetMapping(value = "/payment/get/{id}")  //服务提供者的请求路径
    CommonResult getPaymentById(@PathVariable("id") Long id);

    @GetMapping(value = "/payment/timeout")
    CommonResult timeOut();
}

2、引入依赖(需要把ribbon排除掉)

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>3.1.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-cloud-netflix-ribbon</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
            </exclusions>
        </dependency>

3、yml配置eureka(不需要注入eureka服务)

eureka:
  client:
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

4、主启动类要加@EnableFeignClients注解
5、controller层

@RestController
@RequestMapping("/payment")
public class OrderFeignController {

    @Resource
    private PaymentFeignService paymentFeignService;

    @GetMapping("/get/{id}")
    public CommonResult getPaymentById(@PathVariable("id") Long id){
        return paymentFeignService.getPaymentById(id);
    }

    @GetMapping("/timeout")
    public CommonResult getPaymentById(){
        return paymentFeignService.timeOut();
    }

}

小总结:Feign自带负载均衡配置项

服务接口调用超时配置(在yml里面进行配置):

feign:
  client:
    config:
      default:
        # 指的是建立连接所用的时间,适用于网络状态正常的情况下,两端连接所用的时间
        ConnectTimeOut: 5000  #默认是十秒
        # 指的是建立连接后从服务器读取可用资源所用的时间
        ReadTimeOut: 5000  #默认是60

日志打印:
日志级别:
NONE:默认的,不显示任何日志;
BASIC:仅记录请求方法、URL、响应状态码及执行时间;
HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息;
FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据
日志级别设置:

@Configuration
public class FeignConfig {

    @Bean
    Logger.Level feignLogger(){
        return Logger.Level.FULL;
    }
}
logging:
  level:
    com.openfeign.cloud.service.PaymentFeignService: debug
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值