当前位置: 首页 > news >正文

【SpringCloud】Feign使用

文章目录

  • 配置
    • maven
    • 启动类添加
    • yml
  • 使用
    • 添加Feign服务
    • Controller
  • 其他设置
    • 超时设置
    • YML开启OpenFeign客户端超时控制(Ribbon Timeout)
    • OpenFeign日志打印功能
      • 日志级别
      • YML开启日志

配置

maven

<dependencies><!--openfeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
</dependencies> 

启动类添加

激活Feign

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication
@EnableFeignClients //激活OpenFeign
public class OrderFeignMain80
{public static void main(String[] args) {SpringApplication.run(OrderFeignMain80.class, args);}
}

yml

这里用的是eureka,nacos参考nacos相关配置

server:port: 80
eureka:client:register-with-eureka: falseservice-url:defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

使用

添加Feign服务

@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService
{@GetMapping(value = "/payment/get/{id}")public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id);@GetMapping(value = "/payment/feign/timeout")public String paymentFeignTimeout();
}

Controller

调用PaymentFeignService,之后通过Feign调用相关服务

@RestController
@Slf4j
public class OrderFeignController
{@Resourceprivate PaymentFeignService paymentFeignService;@GetMapping(value = "/consumer/payment/get/{id}")public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id){return paymentFeignService.getPaymentById(id);}@GetMapping(value = "/consumer/payment/feign/timeout")public String paymentFeignTimeout(){// OpenFeign客户端一般默认等待1秒钟return paymentFeignService.paymentFeignTimeout();}
}

其他设置

超时设置

OpenFeign默认等待1秒钟,超过后报错
OpenFeign默认支持Ribbon

YML开启OpenFeign客户端超时控制(Ribbon Timeout)

server:port: 80eureka:client:register-with-eureka: falseservice-url:defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间ReadTimeout: 5000
#指的是建立连接后从服务器读取到可用资源所用的时间ConnectTimeout: 5000

OpenFeign日志打印功能

对Feign接口的调用情况进行监控和输出

日志级别

  • NONE:默认的,不显示任何日志;
  • BASIC:仅记录请求方法、URL、响应状态码及执行时间;
  • HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息;
  • FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据。
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class FeignConfig
{@BeanLogger.Level feignLoggerLevel(){// 此处修改日志级别return Logger.Level.FULL;}
}

YML开启日志

logging:level:# feign日志以什么级别监控哪个接口com.atguigu.springcloud.service.PaymentFeignService: debug
http://www.lryc.cn/news/129539.html

相关文章:

  • WebApIs 第五天
  • 按斤称的C++散知识
  • C++策略模式
  • 如何在网页下载腾讯视频为本地MP4格式
  • opencv-yolov8-目标检测
  • CRYPTO 密码学-笔记
  • 基于YOLOv8模型的五类动物目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • Java课题笔记~ SpringBoot基础配置
  • vue实现文件上传,前后端
  • OJ练习第151题——克隆图
  • keepalived+lvs实现高可用
  • 【Let‘s make it big】英语合集61~70
  • python实现图像的二分类
  • 8.深浅拷贝和异常处理
  • Element Plus el-table 数据为空时自定义内容【默认为 No Data】
  • 使用nginx和frp实现高效内网穿透:简单配置,畅通无阻
  • Python土力学与基础工程计算.PDF-螺旋板载荷试验
  • 低代码开发ERP:精打细算,聚焦核心投入
  • 顺序表(数据结构)
  • stable_diffusion_webui docker环境配置
  • 【Java】常见面试题:HTTP/HTTPS、Servlet、Cookie、Linux和JVM
  • 批量爬虫采集完成任务
  • intelij idea 2023 创建java web项目
  • 【论文笔记】基于指令回译的语言模型自对齐-MetaAI
  • MySQL和MariaDB的版本对应关系
  • Python数据的输入与输出
  • 生成国密密钥对
  • ASR(自动语音识别)任务中的LLM(大语言模型)
  • 简单介绍一下centos上有什么工具可以优雅的管理开机启动项
  • 万宾燃气管网监测解决方案,守护城市生命线安全