iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >SpringCloud:Feign的使用及配置
  • 395
分享到

SpringCloud:Feign的使用及配置

springcloudjavaspringboot 2023-09-18 18:09:15 395人浏览 独家记忆
摘要

目录 Feign的使用及配置 1、Feign替代RestTemplate 2、使用Fegin步骤 3、自定义配置 4、Feign使用优化 5、Feign的最佳实践方式 Feign的使用及配置 1、Feign替代RestTemplate

目录

Feign的使用及配置

1、Feign替代RestTemplate

2、使用Fegin步骤

3、自定义配置

4、Feign使用优化

5、Feign的最佳实践方式


Feign的使用及配置

1、Feign替代RestTemplate

RestTemplate方式远程调用的问题

 问题:

代码可读性差,编程体验不同统一

参数复杂,URL难以维护

Feign介绍

Feign是一个声明式的Http客户端,官方地址:OpenFeign · GitHub

其作用就是帮助我们实现http请求的发送,解决上面提到的问题。

2、使用Fegin步骤

引入依赖

                            org.springframework.cloud            spring-cloud-starter-openfeign        

在启动类添加注解开启Feign的功能

@EnableFeignClients
@MapperScan("cn.itcast.order.mapper")@SpringBootApplication@EnableFeignClientspublic class OrderApplication {    public static void main(String[] args) {        SpringApplication.run(OrderApplication.class, args);    }}

 3、编写Feign客户端

@FeignClient("userservice")//服务名称public interface UserClient {    @GetMapping("/user/{id}")//访问路径    User findById(@PathVariable("id") Long id);//对应远程调用controller接口}

主要是基于springMVC的注解来声明远程调用的信息,比如:

服务名称: userservice        请求方式:GET·        请求路径:/user/{lid}·

请求参数:Long id·        返回值类型: User

3、自定义配置

Feign运行自定义配置来覆盖默认配置,可以修改的配置如下:
 

类型作用说明
feign.Logger.Level修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL
feign.codec.Decoder响应结果的解析器http远程调用的结果做解析,例如解析JSON字符串为java对象
feign.codec.Encoder请求参数编码将请求参数编码,便于通过http请求发送
feign.Contract支持的注解格式默认是Springmvc的注解
feign. Retryer失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试

Feign日志配置

yml文件配置

全局生效

feign:  client:    config:      default:  #这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置        loggerLevel: FULL #日志级别

局部生效

feign:  client:    config:      userservice: #这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置        loggerLevel: FULL #日志级别

 java代码配置

定义一个配置类

public class DefaultFeignConfig {    @Bean    public Logger.Level logLevel(){        return Logger.Level.BASIC;    }}

如果是全局配置,则把它放到@EnableFeignClients这个注解中:

@EnableFeignClients(defaultConfiguration = DefaultFeignConfig.class)

如果是局部配置,则把它放到@FeignClient这个注解中:

@FeignClient(value = "userservice",configuration = FeignClientConfiguration.class)

4、Feign使用优化

Feign底层的客户端实现:

URLConnection:默认实现,不支持连接池.

Apache HttpClient:支持连接池

OKHttp:支持连接池

因此优化Feign的性能主要包括:

使用连接池代替默认的URLConnection

日志级别,最好用basic或none

引入依赖

                            io.GitHub.openfeign            feign-httpclient        

 2、配置连接池

feign:  httpclient:    enabled: true # 支持HttpClient的开关    max-connections: 200 # 最大连接数    max-connections-per-route: 50 # 单个路径的最大连接数

总结

Feign的优化:
1.日志级别尽量用basic
2.使用HttpClient或OKHttp代替URLConnection
        引入feign-httpClient依赖
        配置文件开启httpclient功能,设置连接池参数

5、Feign的最佳实践方式

方式一(继承):

给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。
 

 弊端:

服务紧耦合
2、父接口参数列表中的映射不会被继承

方式二(抽取):

将FeignClient抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,

提供给所有消费者使用

使用这种方式时,如果定义的FeignClient不在SpringBootApplication的扫描包范围时,这些

FeignClient无法使用。有两种方式解决:

指定FeignClient所在包

 2、指定FeignClient字节码

 总结:Feign的最佳实践

让controller和FeignClient继承同一接口

将Feignclient、POJO、Feign的默认配置都定义到一个项目中,供所有消费者使用
 

来源地址:https://blog.csdn.net/qi341500/article/details/129300783

--结束END--

本文标题: SpringCloud:Feign的使用及配置

本文链接: https://www.lsjlt.com/news/412026.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringCloud:Feign的使用及配置
    目录 Feign的使用及配置 1、Feign替代RestTemplate 2、使用Fegin步骤 3、自定义配置 4、Feign使用优化 5、Feign的最佳实践方式 Feign的使用及配置 1、Feign替代RestTemplate...
    99+
    2023-09-18
    spring cloud java spring boot
  • .eslintrc配置目录及配置项的使用方式
    目录.eslintrc文件配置介绍规则文档eslint问题如下还有相关的案例说明今天在运行antd-design-vue的源代码项目时,发现vscode有很多eslint的报错,原因...
    99+
    2022-11-13
    eslintrc配置目录 eslintrc配置项 eslintrc配置
  • Log4j.properties配置及其使用
    目录一、log4j简介1、Loggers2、Appenders3、Layouts二、配置详解1、配置根Logger:2、配置日志信息输出目的地(appender):2.1Consol...
    99+
    2022-11-12
  • Android lint配置及使用
    关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导...
    99+
    2023-09-10
    android 面试 lint 优化 瘦身
  • Logback的使用及如何配置
    目录1 为什么选用Logback?2 Logback的配置3 Logback的输出格式4 Appender5 Logback使用过程中遇到的问题日志在项目开发过程的作用不言而喻,项目...
    99+
    2022-11-12
  • 关于@RequestLine的使用及配置
    目录@RequestLine的使用及配置自定义配置feignClient并使用@RequestLine问题步骤1. 定义请求接口2. 定义配置文件,配置请求接口@RequestLin...
    99+
    2022-11-13
  • gradle的安装配置及使用
    一、gradle的安装 1.官网下载链接:https://gradle.org/releases/ 1、下载后解压 2、配置环境变量,新建 GRADLE_HOME 环境变量指向你的 Gradle 解压路径 3、将 %GRADLE_H...
    99+
    2023-08-19
    gradle java 开发语言
  • Softerra LDAP Browser使用及配置
    Softerra LDAP Browser 是一种用于浏览和编辑 Lightweight Directory Access Prot...
    99+
    2023-09-23
    Softerra
  • @RequestLine怎么使用及配置
    本篇内容介绍了“@RequestLine怎么使用及配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!@RequestLine的使用及配置@R...
    99+
    2023-07-02
  • ESLine怎么配置及使用
    本文小编为大家详细介绍“ESLine怎么配置及使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“ESLine怎么配置及使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。环境:React,Webpack,Babe...
    99+
    2023-06-05
  • HP cluster的硬件配置及使用
    双机备份原理:在2个主机节点上分别安装集群软件(如:HP ServiceGuard),对客户端配置一个浮动IP,浮动意思是该IP地址适时绑定在2个节点中的某一个上,但该IP对客户端是固定的。每个节点配置3块网卡,分别是数据网卡,心跳信号网卡...
    99+
    2023-06-06
  • OSWatcher的安装、配置以及使用
    本篇内容介绍了“OSWatcher的安装、配置以及使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!参考O...
    99+
    2022-10-18
  • GraalVm的反射配置辅助工具agentlib配置及使用
    目录前言关于agentlib工具配置文件使用前言 Graalvm通过静态分析提前编译来为Java应用程序构建高度优化的本机可执行文件,这就需要在编译时就知道所有的程序类型,而java...
    99+
    2022-11-13
  • vue使用vite配置跨域及环境配置的方法
    这篇文章主要介绍“vue使用vite配置跨域及环境配置的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue使用vite配置跨域及环境配置的方法”文章能帮助大家解决问题。如何配置跨域,代理域名不...
    99+
    2023-07-02
  • 若依配置教程(五)数据权限的使用及配置
    文章目录 一、Controller模块二、Mapper.xml三、在Impl服务层加入权限注解四、分配数据权限 若依文档 学会了前几篇文章如何新建模块和生成代码,这篇接下来介绍数据权限的配置和使用:  首先,在建立数据库表的时...
    99+
    2023-08-16
    java 数据库 mybatis
  • JavaScript webpack5如何配置及使用
    这篇文章主要讲解了“JavaScript webpack5如何配置及使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript&nbs...
    99+
    2022-10-19
  • SpringBoot使用minio及配置代码
    目录1、导入 minio jar包2、配置3、实现MinIO是一个开源的对象存储服务。适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对...
    99+
    2022-11-13
  • Spark SQL配置及使用教程
    目录SparkSQL版本: SparkSQL DSL语法 SparkSQL和Hive的集成Spark应用依赖第三方jar包文件解决方案        SparkSQL的ThriftS...
    99+
    2022-11-12
  • salt-api安装配置及使用
    Python3使用saltstack和salt-api 安装python3 1. tar zxvf Python-3.5.1.tgz 2. cd Python-3.5.1 3. ./confi...
    99+
    2023-01-31
    salt api
  • Windows10环境adb配置及使用
    下载 adb工具官网下载地址:Download Android SDK - free - latest version 安装 下载得到一个压缩包,解压在任一文件夹下,这里解压在D盘的一个文件夹 注意这里的文件地址要牢记 配置环境变量 右键...
    99+
    2023-09-13
    adb android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作