【OpenFeign常用配置】

OpenFeign常用配置

    • 快速入门:
      • 1、引入依赖
      • 2、启用OpenFeign
    • 实践
      • 1、引入依赖
      • 2、开启连接池功能
      • 3、模块划分
      • 4、日志
      • 5、重试

快速入门:

OpenFeign

OpenFeign是一个声明式的http客户端,是spring cloud在eureka公司开源的feign基础上改造而来。其作用及时基于springmvc的常见注解,帮我们优雅的实现http请求的发送。
以下配置都是基于各自项目基础上的,因此这里不会将所有配置都罗列出来,取决于各自项目配置。

OpenFeign已经被SpringCloud自动装配,实现起来比较简单:

1、引入依赖

包括OpenFeign和负载均衡组件SpringCloudLoadbalancer,版本问题都在顶级pom文件定义,此处不在展示

<!--OpenFeign-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--负载均衡-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

2、启用OpenFeign

通过@EnableFeignClients注解,启用OpenFeign功能,例如Gateway模块启动类

说明:
basePackages:指定OpenFeign接口路径
defaultConfiguration:指定OpenFeign配置类,具体查看项目源码

实践

OpenFeign对http请求做了优雅的伪装,不过其底层发起http请求,依赖于其它的框架。这些框架可以自己选择,包括以下三种:
HttpURLConnection:默认实现,不支持连接池
Apache HttpClient:支持连接池
OKHttp:支持连接池
具体源码可参考FeignBlockingLoadBalancerClient类中的delegate成员变量。

整合,OpenFeign整合OKHttp的步骤如下:

1、引入依赖

在快速入门的基础上引入以下依赖使用连接池

<!--okhttp-->
<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-okhttp</artifactId>
</dependency>

2、开启连接池功能

在这里插入图片描述

3、模块划分

单独增加存放远程调用接口模块 edu-api
在这里插入图片描述
需要在对应业务模块引入且启动类需要增加包路径指定(包路径一致可忽略),否则启动报错,例如在gateway网关模块pom文件引入

<!--edu-api模块-->
<dependency>
    <groupId>com.xxw.itsx</groupId>
    <artifactId>edu-api</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

当定义的FeignClient不在SpringBootApplication的扫描包范围时,这些FeignClient无法使用,有两种方案解决:
方案一:指定FeignClient所在包
在这里插入图片描述

方式二:指定FeignClient字节码
在这里插入图片描述

4、日志

OpenFeign只会在FeignClient所在包的日志级别为debug时,才会输出日志。而且其日志级别由4级:
NONE:不记录任何日志信息,这是默认值

BASIC:仅记录请求的方法,URL以及响应状态码和执行时间

HEADERS:在BASIC的基础上,额外记录了请求和响应头的信息

FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据

备注:由于Feign默认的日志级别时NONE,所以默认我们看不到请求日志。

要自定义日志级别需要声明一个类型为Logger.Level的Bean,在其中定义日志级别:
在这里插入图片描述

此时这个bean并未生效,在对应的类没有加配置类注解,要想配置某个FeignClient的日志,可以直接在@FeignClient注解中声明
在这里插入图片描述

如果想要全局配置,让所有FeignClient都按照这个日志配置,则需要在@EnableFeignClients注解中声明
在这里插入图片描述

5、重试

重试配置,额外增加一个bean即可,如下
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/403093.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++精简版回顾】5.字符串

1.字符串的四种初始化方式 string str "ilove"; string str1("ilove"); string str2(str1); string str3 str1; 2.针对字符串的一些函数 &#xff08;1&#xff09;字符串长度 cout<<str.length()<<endl;&#xff08;2&#xff09;查找字…

Android platform tool中d8.bat不生效

d8.bat因找不到java_exe文件&#xff0c;触发EOF d8.bat中之前代码为&#xff1a; set java_exe if exist "%~dp0..\tools\lib\find_java.bat" call "%~dp0..\tools\lib\find_java.bat" if exist "%~dp0..\..\tools\lib\find_java.bat" …

PowerDesigner 安装

PowerDesigner 安装汉化破解使用过程 - 沦陷 - 博客园 (cnblogs.com)https://www.cnblogs.com/huangting/p/12654057.html

MacBook安装Ansible

MacBook安装Ansible Ansible介绍 ansible是新出现的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具&#xff08;puppet、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于…

Fiddler工具 — 17.Fiddler进行弱网测试

1、什么是弱网测试 从测试角度来说&#xff0c;需要额外关注的场景远不止断网、网络故障等情况&#xff0c;还需要关注弱网情况下测试。 弱网测试属于健壮性测试的内容。随着国内移动端迅猛发展&#xff0c;大大增加用户碎片化使用使用APP的。想象一下&#xff0c;用户在地铁…

leetcode hot100 完全平方数

本题中&#xff0c;是给一个整数n&#xff0c;让用完全平方数凑出这个整数&#xff0c;注意&#xff0c;题中给了n的范围&#xff0c;是大于等于1的&#xff0c;也就是说&#xff0c;dp[0]我们可以先不考虑。 整个问题可以抽象成完全背包问题的变形形式&#xff0c;物品就是这…

web前端安全性——CSRF跨站请求伪造

承接上篇讲述的XSS跨站脚本攻击 跨站请求伪造&#xff08;CSRF&#xff09; 1、概念 CSRF(Cross-site request forgery) 跨站请求伪造:攻击者诱导受害者进入第三方网站&#xff0c;在第三方网站中&#xff0c;向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注…

三十年一个大轮回!日股突破“泡沫时期”历史高点

2月22日周四&#xff0c;英伟达四季报业绩超预期&#xff0c;而且本季度业绩指引非常乐观&#xff0c;提振美股股指期货并成为芯片股和AI概念股情绪的重要催化剂。今日亚洲芯片股和AI股起飞&#xff0c;日本在芯片股的带动下突破1989年泡沫时期以来的历史最高收盘价。 美股方面…

Rust介绍与开发环境搭建

安装rust rust 安装官方指南&#xff1a;[HTPS][3W].rust-lang.org/tools/install &#xff08;自己替换 HTPS,3W&#xff09; Linux或者Macbook上安装rust 打开终端并输入下面命令&#xff1a; #因审核问题下面链接需要替换一下 HTPS->httpscurl --tlsv1.2 [HTPS]://s…

好用的UI自动化测试平台推荐

随着软件行业的不断发展&#xff0c;建立一个完善的自动化测试体系变得至关重要。目前&#xff0c;自动化测试主要涵盖接口自动化测试和UI自动化测试两个主要领域。就目前而言&#xff0c;企业在UI自动化测试方面的覆盖率仍然相对较低。 接口自动化测试可以模拟和执行应用程序…

数据库管理-第152期 Oracle Vector DB AI-04(20240220)

数据库管理152期 2024-02-20 数据库管理-第152期 Oracle Vector DB & AI-04&#xff08;20240220&#xff09;1 常用的向量检索方法聚类图搜索哈希量化 2 Oracle Vector DB中的索引索引&#xff08;默认&#xff09; 索引&#xff08;高级&#xff09;3 EMBEDDINGSSQL EMBE…

【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;底层原理高级进阶》 &#x1f680…

基于SpringBoot的在线拍卖系统设计与实现(源码+调试+LW+PPT)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的在线拍…

2024最佳住宅代理IP服务商有哪些?

跨境出海已成为了近几年的最热趋势&#xff0c;大批量的企业开始开拓海外市场&#xff0c;而海外电商领域则是最受欢迎的切入口。新兴的tiktok、Temu&#xff0c;老牌的Amazon、Ebay&#xff0c;热门的Etsy、Mecari等等都是蓝海一片。跨境入门并不难&#xff0c;前期的准备中不…

科普栏目|水壁炉:光影对家居和空间的影响

在这宁静的夜晚&#xff0c;水壁炉如一位魔法师&#xff0c;点亮了房间的一角。微光中&#xff0c;水在超声波的激荡下&#xff0c;散发出柔和的光芒。灯光随着水离子的律动而变化&#xff0c;犹如水面上微波荡漾。 有时又犹如一位灵巧的调色师&#xff0c;轻抚着橙红的光影&am…

Go语言的100个错误使用场景(48-54)|错误管理

前言 大家好&#xff0c;这里是白泽。**《Go语言的100个错误以及如何避免》**是最近朋友推荐我阅读的书籍&#xff0c;我初步浏览之后&#xff0c;大为惊喜。就像这书中第一章的标题说到的&#xff1a;“Go: Simple to learn but hard to master”&#xff0c;整本书通过分析1…

shell脚本实现Mysql分库分表备份

一.数据库的分库分表&#xff1f; 12张图把分库分表讲的明明白白&#xff01;阿里面试&#xff1a;我们为什么要分库分表https://mp.weixin.qq.com/s?__bizMzU0OTE4MzYzMw&mid2247547792&idx2&sn91a10823ceab0cb9db26e22783343deb&chksmfbb1b26eccc63b784879…

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法)

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法) 写上篇文章时测试过程比较乱&#xff0c;写的时候有些地方有点失误&#xff0c;所以重新写了这篇 本文内容均在RGB-D环境下进行程序测试 本文涉及到的动态特征点剔除速度均是以https://cvg.cit.tum.de/data/datasets/rgbd-dat…

c++ 到底是什么呢。需要学的太多了!

如谷歌&#xff0c;苹果&#xff0c;微软&#xff0c;造硬件的更是如此&#xff0c;如amd的&#xff0c;英传达&#xff0c;英特尔&#xff0c;他们都有C加速库。 C难就难在你如果达到顶峰&#xff0c;像些公司一样&#xff0c;是非常难的。因为这些公司已经垄断了市场。 C编译…

Android 圆环带刻度条进度动画效果实现

效果图 需求是根据传感器做一个重力球效果&#xff0c;先实现了动画后续加上跟传感器联动. 又是摆烂的一天&#xff0c; 尚能呼吸&#xff0c;未来可期啊 View源码 package com.android.circlescalebar.view;import android.content.Context; import android.content.res.Typ…