39.Feign
Java方式配置
/**局部**/
@FeignClient(value = "user-center", /*修改(user-center)feign的日志级别*/ configuration = UserCenterFeignConfiguration.class)
public interface UserCenterFeignClient {
@GetMapping("/users/{id}")
ResponseEntity<UserDTO> queryById(@PathVariable("id") Integer id);
}
/**
* Created by Guaguaerhao on 2022/4/28 2:21 下午
* feign 的配置类
* 这个类不能加@Configuration注解了,否则必须挪到@ComponentScan能扫描到的包以外
*
* (添加@Configuration,会导致父子上下文重复扫描)
*/
public class UserCenterFeignConfiguration {
// 修改feign日志级别
// NONE(默认值):不记录任何日志
// BASIC 仅记录请求方法、URL、响应状态吗、请求时间
// HEADERS 记录BASIC级别的基础上,记录请求和响应header
// FULL 记录请求和响应的header、body和元数据
@Bean
public Logger.Level level(){
return Logger.Level.NONE;
}
}
/**全局**/
@EnableFeignClients(defaultConfiguration = GlobalFeignConfiguration.class) /*自定义Feign全局配置*/
public class ContentCenterApplication {
public static void main(String[] args) {
SpringApplication.run(ContentCenterApplication.class, args);
}
}
application.properties配置
# 修改Feign日志级别,需要配置以下 2 点
# application.properties 或 application.yml 的配置优先级高于Java配置
# 1.1 修改Feign日志级别,必须将feign的日志级别定为 debug
logging.level.com.itmuch.contentcenter.feign.UserCenterFeignClient=debug
# 1.2 修改具体哪一个微服务的Feign日志输出级别
#feign.client.config.user-center.logger-level=full
# 2. 自定义Feign全局(所有微服务)配置
feign.client.config.default.logger-level=full
性能优化
Feign 连接池
1.添加依赖
<!--Feign 连接池-->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
2.配置application.properties
###############################################
# 配置feign连接池,需要配合依赖 feign-httpclient #
###############################################
# 让feign使用apache httpclient做请求;而不是urlconnection
feign.httpclient.enabled=true
# feign的最大连接数
feign.httpclient.max-connections=200
# feign单个路径的最大连接数
feign.httpclient.max-connections-per-route=50
Feign日志级别:推荐BASIC
Feign常见问题:
https://www.imooc.com/article/289005
39.Feign的更多相关文章
- SpringCloud 源码系列(6)—— 声明式服务调用 Feign
SpringCloud 源码系列(1)-- 注册中心 Eureka(上) SpringCloud 源码系列(2)-- 注册中心 Eureka(中) SpringCloud 源码系列(3)-- 注册中心 ...
- Spring Cloud中Feign如何统一设置验证token
代码地址:https://github.com/hbbliyong/springcloud.git 原理是通过每个微服务请求之前都从认证服务获取认证之后的token,然后将token放入到请求头中带过 ...
- 使用@FeignClient时,报java.lang.NoClassDefFoundError: feign/Feign$Builder错
错误信息: Caused by: java.lang.ClassNotFoundException: feign.Feign$Builder at java.net.URLClassLoader.fi ...
- SpringCloud+Feign环境下文件上传与form-data同时存在的解决办法
最近项目转型使用SpringCloud框架下的微服务架构,各微服务之间使用Feign进行调用.期间,发现若被调用方法涉及到文件上传且仅存在单个文件时,一切正常,代码片段如下: @RequestMapp ...
- Feign性能优化注意事项--超时
Caused by: java.lang.IllegalStateException: PathVariable annotation was empty on param 1. at feign ...
- 【微服务架构】SpringCloud之Feign(五)
Feign简介 Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Fei ...
- feign实现服务间的负载均衡
feign Feign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单.我们只需要使用Feign来创建一个接口并用注解来配置它既可完成.它具备可插拔的注解 ...
- 【springcloud】使用@FEIGNCLIENT时,报JAVA.LANG.NOCLASSDEFFOUNDERROR: FEIGN/FEIGN$BUILDER错
引用地址:http://www.cnblogs.com/ellacan/p/8822374.html 错误信息: Caused by: java.lang.ClassNotFoundException ...
- Spring Cloud Feign 出现ClassNotFoundException: feign.Feign$Builder错误
Spring Cloud Feign 出现ClassNotFoundException: feign.Feign$Builder错误 后来发现是POM文件写错了,修改为正确的pom,就可以了: POM ...
- SpringCloud的入门学习之概念理解、Feign负载均衡入门
1.Feign是SpringCloud的一个负载均衡组件. Feign是一个声明式WebService客户端.使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口, ...
随机推荐
- 1839:【05NOIP提高组】谁拿了最多奖学金
1839:[05NOIP提高组]谁拿了最多奖学金 时间限制: 1000 ms 内存限制: 65536 KB提交数: 9569 通过数: 4431 [题目描述] 某校的惯例是在每 ...
- python读取Excel指定单元格的值
使用openpyxl实现 只支持xlsx文件,不支持xls import openpyxl def read_cell(io, sheet, cell='A2'): """ ...
- uniapp 开发遇到的问题
1. App平台IOS端软键盘上方横条去除方案(禁用键盘上的^) 在 pages.json 中配置 style配置 "app-plus": { "softinputNav ...
- Aspose.Cells 拒绝访问、数据库 64 bit mode with the 32 bit Oracle、视图加载格式不正确。
第一次遇到发布程序后,引发的这么多奇葩问题.记录一下. 配置:windows server 2018 R2 企业版 sp1 这是一台闲置4年机子,拿到机子里面已经安装过oracle客户端,我直接卸载装 ...
- pycharm的基本操作数据类型
prcharm的基础操作 1.切换版本翻译器 file-settings-project-interpeter 注释 1.单行注释 添加注释:#加上需要添加的注释 快捷键:ctrl+? 自动进行格式化 ...
- MapReduce原理——切片代码分析
(1)程序先找到数据存储的目录 (2)遍历目录对每个文件进行切片 (3)遍历一个文件: 获取文件大小 计算切片大小 默认情况下,切片大小等于blocksize 每次切片时都要判断剩下部分师否大于块的1 ...
- 通过curl获取当前机器IPv6的外网地址
curl -XPOST -vB -6 -g "https://10086.cn/web-Center/commonservice/getUserIp.do" -H "Re ...
- 关于elementui 验证问题 验证某个值大于另外一个值
elementui ui表单验证区间 <el-form ref="ruleForm" :model="ruleForm" :rules="rul ...
- 「postOI」以另一种方式证明 FWT
记号 \(\otimes\) 代表或/与/异或卷积: \(\oplus\) 代表"拼接",例如 \(A\oplus B\) 即将 \(B\) 接在 \(A\) 的后面: \(+,- ...
- nodejs查询
const tagModel = require("../mongodb"); 1 const mongoose = require("mongoose"); ...