学习spring cloud记录12-Feign常用自定义配置
前言
Feign被springboot自动装配,但是Feign也提供了可自定义修改配置,常用的修改是修改日志级别等,下面记录常用的配置。
知识
| 类型 | 作用 | 说明 |
| feign.Looger.Level | 修改日志级别 | 包含不同的四种级别:NONE,BASIC,HEADERS,FULL |
| feign.codec.Decoder | 响应结果解析器 | HTTP远程调用的接口进行解析,列如解析json为对象 |
| feign.codec.Encoder | 请求参数编码 | 将请求参数编码,便于通过http请求发送 |
| feign.Contract | 支持注解格式 | 默认是SpringMVC注解 |
| feign.Retryer | 失败重试机制 | 请求失败后重试,默认不重试,但是底层依赖于ribbon,ribbon是有重试的 |
代码实现(修改级别)
方式一:基于配置文件
添加下列配置即可:
feign:
client:
config:
default: #如果是default就是全局,如果是服务名,就是单独
loogerLevel: FULL
方式二:基于java代码
声明一个类:
package priv.sinoam.demoorder.demo.config; import feign.Logger;
import org.springframework.context.annotation.Bean; public class FeignConfiguration {
@Bean
public Logger.Level logLevel(){
return Logger.Level.BASIC;
}
}
全局配置:
在启动类添加
@EnableFeignClients(defaultConfiguration = FeignConfiguration.class)
局部配置:
在客户端类添加
@FeignClient(value = "demo-user", configuration = FeignConfiguration.class)
Feign新能优化
Feign底层客户端的实现:
- URLConnection:默认实现,不支持连接池
- Apache HttpClient:支持连接池
- OKHttp:支持连接池
Feign新能优化主要包括:
- 使用连接池替代默认的URLConnection
- 日志级别:最好使用basic或者none
实现
以HttpClient为例
引入依赖
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
配置连接池
feign:
httpclient:
enabled: true # 支持httpClient 默认为true
max-connections: 200 #最大连接数
max-connections-per-route: 50 # 单个路径的最大连接数
问题
不管怎么配置,都没有打印日志,还没有找到解决办法
学习spring cloud记录12-Feign常用自定义配置的更多相关文章
- Spring Cloud(Dalston.SR5)--Feign 声明式REST客户端
Spring Cloud 对 Feign 进行了封装,集成了 Ribbon 并结合 Eureka 可以实现客户端的负载均衡,Spring Cloud 实现的 Feign 客户端类名为 LoadBala ...
- spring cloud 2.x版本 Gateway自定义过滤器教程
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...
- Spring Cloud 入门 之 Feign 篇(三)
原文地址:Spring Cloud 入门 之 Feign 篇(三) 博客地址:http://www.extlight.com 一.前言 在上一篇文章<Spring Cloud 入门 之 Ribb ...
- spring cloud要点简介及常用组件
spring cloud基于spring boot spring cloud是通过包装其他技术框架实现的,例如OSS组件,实现了一套通过基于注解.java配置和基于模板开发的微服务框架. spring ...
- Spring Cloud ZooKeeper集成Feign的坑2,服务调用了一次后第二次调用就变成了500,错误:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.n
错误如下: 2017-09-19 15:05:24.659 INFO 9986 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refre ...
- 0.9.0.RELEASE版本的spring cloud alibaba sentinel+feign降级处理实例
既然用到了feign,那么主要是针对服务消费方的降级处理.我们基于0.9.0.RELEASE版本的spring cloud alibaba nacos+feign实例添油加醋,把sentinel功能加 ...
- Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解
前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式(Res ...
- Spring Cloud(十四)Config 配置中心与客户端的使用与详细
前言 在上一篇 文章 中我们直接用了本应在本文中配置的Config Server,对Config也有了一个基本的认识,即 Spring Cloud Config 是一种用来动态获取Git.SVN.本地 ...
- Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置
前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式> ...
- Spring Cloud Alibaba基础教程:Nacos配置的多环境管理
前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式> ...
随机推荐
- DHCP介绍与实现方法
简介:动态主机配置协议(Dynamic Host Configuration Protocol,缩写:DHCP)是 RFC 1541(已被 RFC 2131 取代)定义的标准协议,该协议允许服务器向客 ...
- 从 Excel 到你的表格应用:数据验证功能的嵌入实践指南
前言: 随着信息化的不断发展,传统表格软件已无法满足用户对便携性.数据自动化管理等日益复杂的要求,将电子表格与其他系统结合.开发自己的表格应用已成为愈发火热的趋势. 然而,当企业需要将 Excel 的 ...
- 为什么 Java 的垃圾收集器将堆分为老年代和新生代?
为什么 Java 的垃圾收集器将堆分为老年代和新生代? Java 垃圾收集器通过将堆内存划分为 新生代 和 老年代,优化了内存管理,提高了垃圾回收的效率.这种分代思想是基于 对象生命周期的特点. 1. ...
- 异步编程与Tortoise-ORM框架
title: 异步编程与Tortoise-ORM框架 date: 2025/04/19 00:13:05 updated: 2025/04/19 00:13:05 author: cmdragon e ...
- 国产的 Java Solon v3.2.0 发布(央企信创的优选)
Solon 框架! Solon 是新一代,Java 企业级应用开发框架.从零开始构建(No Java-EE),有灵活的接口规范与开放生态.采用商用友好的 Apache 2.0 开源协议,是" ...
- vue报错:Property or method "xxx" is not defined on the instance but referenced during render.
vue报错:Property or method "attendanceDetaill" is not defined on the instance but referenced ...
- Joomla未授权访问漏洞|CVE-2023-23752复现及修复
00 前言 这漏洞公开有阵子了好像,今天才复现了下 Jooml 在海外使用较多,是一套使用 PHP 和 MySQL 开发的开源.跨平台的内容管理系统(CMS).Joomla 4.0.0 至 4.2 ...
- rust程序静态编译的两种方法总结
1. 概述 经过我的探索,总结了两种rust程序静态编译的方法,理论上两种方法都适用于windows.mac os和linux(mac os未验证),实测方法一性能比方法二好,现总结如下,希望能够帮到 ...
- C++ 容器(STL容器)
容器(container)用于存放数据的类模板.可变长数组.链表.平衡二叉树等数据结构在STL中都被实现为容器. 在使用容器时,即将容器类模型实例化为容器类,会指明容器中存放的元素是什么类型. 容器可 ...
- JS中的Uncaught TypeError: Cannot set property 'innerHTML' of null
问题: 这是JS中常见的一种错误,其错误在于在页面载入之前,JS中有代码提前调用了页面的元素,如以下就是今天碰到的问题,查找了半天才发现了这个简单的错误,做个记录: 可见页面上并没有任何内容,提示是U ...