OpenFegin服务调用

本文介绍了OpenFeign的基本概念和使用方法,包括添加依赖、启用注解、编写FeignClient接口以及如何直接调用远程服务。此外,还详细阐述了OpenFeign的超时控制配置,以及它内置的负载均衡机制。最后,讨论了OpenFeign的日志功能,包括如何添加日志Bean、开启日志和设置日志级别,以便于对调用过程进行监控。

OpenFeign

1、简介

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

2、使用

1、加入依赖
<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2、主启动类加上@EnableFeignClients注解,开启OpenFeign
@SpringBootApplication
@EnableFeignClients
public class FeignOrderMain80 {

    public static void main(String[] args){
        SpringApplication.run(FeignOrderMain80.class,args);
    }
}
3、写FeignClient接口
  • @FeignClient指定提供服务的名称
  • @Mapping指定远程服务的调用uri
@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {

    @GetMapping(value = "/payment/getPort")
    String getPort();

}
4、服务使用
  • 直接获取远程服务接口的实现类,调用提供的方法,就可以直接实现远程服务的调用
@RestController
public class OrderFeignController {

    @Resource
    private PaymentFeignService paymentFeignService;

    @GetMapping("/consumer/payment/getPort")
    public String getPaymentById(  )
    {
        return paymentFeignService.getPort();
    }
}

3、OpenFeign超时控制

  • openFeign在调用远程服务时,默认只会等待一分钟,如果远程服务的处理时间超过一秒钟,就会直接报错返回。
  • 可以在yml配置文件中修改超时时间
#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
  ReadTimeout: 5000
#指的是建立连接后从服务器读取到可用资源所用的时间
  ConnectTimeout: 5000

4、自带负载均衡机制

OpenFeign依赖包中是带有Ribbon依赖的,所以OpenFeign在进行远程服务调用时也是带有负载均衡功能的
在这里插入图片描述

5、日志功能

OpenFeign还带有日志打印功能。可以了解OpenFeign在进行Http请求调用时的细节。对Feign接口的调用情况进行监控。

1、添加日志Bean
@Configuration
public class MyConfig {

    @Bean
    Logger.Level feignLoggerLevel()
    {
        return Logger.Level.FULL;
    }

}
2、yml中开启日志功能
  • 注意给使用@FeignClient的接口路径
logging:
  level:
    com.wjy.service.PaymentFeignService: debug

我这里的用了@FeignClient的接口路径是com.wjy.service.PaymentFeignService

3、日志的级别

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值