openFeign的使用详解

【OpenFeign】OpenFeign 简介和使用以及对比 Feign 一、简介官网:https://spring.io/projects/spring-cloud-openfeign文档:https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/配置:https://docs.spring.io/spr... 阅读详情

作用:简单的说就是,在微服务中,用于跨服务的调用。

用法

1.引入pom
2.在启动类增加注解
@EnableFeignClients(basePackages = {"com.fcs"})
//basePackages属性是配置扫描哪些包下
3.写feign的调用接口

使用注解:

@FeignClient

举例:


@FeignClient(contextId = "coudAccountService", value = "hcloud-cpc", configuration = FeignConfiguration.class, fallbackFactory = CpcCloudAccountServiceFallBackFactory.class)
public interface CpcCloudAccountService {

    @PostMapping("/cloudAccount")
    R<CpcCloudAccount> create(@RequestBody CpcCloudAccount cpcCloudAccount);

    @RequestMapping(method = RequestMethod.GET, value = "/cloudAccount/{id}")
    R<CpcCloudAccount> findById(@RequestParam String id);

    @RequestMapping(method = RequestMethod.GET, value = "/cloudAccount")
    R<List<CpcCloudAccount>> getAll(@RequestParam String cloudType);

    @GetMapping("/cloudAccount/findByAccount")
    R<CpcCloudAccount> findByAccount(@RequestParam(required = false) String account);

    @GetMapping("/cloudAccount/audit")
    R<CpcCloudAccount> audit(@RequestParam String account, @RequestParam Integer status);
    
}

属性介绍:

value:

就是微服务暴露的服务名称

contextId:

比如我们有个user服务,但user服务中有很多个接口,我们不想将所有的调用接口都定义在一个类中,比如:

Client 1
@FeignClient(name = "optimization-user")
public interface UserRemoteClient {
	@GetMapping("/user/get")
	public User getUser(@RequestParam("id") int id);
}

Client 2
@FeignClient(name = "optimization-user")
public interface UserRemoteClient2 {
	@GetMapping("/user2/get")
	public User getUser(@RequestParam("id") int id);
}

这种情况下启动就会报错了,因为Bean的名称冲突了,具体错误如下:

Description:
The bean 'optimization-user.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

解决方案就是为每个Client手动指定不同的contextId,这样就不会冲突了。

configuration:

用于指定配置类

fallbackFactory:

是容错的处理,可以知道熔断的异常信息。指定的类必须实现BaseFallbackFactory接口
举例:

@Component
public class CpcCloudAccountServiceFallBackFactory implements BaseFallbackFactory<CpcCloudAccountService> {

    @Override
    public CpcCloudAccountService create(Throwable throwable) {

        return new CpcCloudAccountService() {

            @Override
            public R<CpcCloudAccount> create(@RequestBody CpcCloudAccount cpcCloudAccount){
                return bizHandle(throwable);
            }
            @Override
            public R<CpcCloudAccount> findById(@RequestParam String id){
                return bizHandle(throwable);
            }
        };
    }
}

从feign接口点实现会直接链接到这里

openFeign超时设置

openFeign默认等待一秒钟,没有返回就会报错,底层实际是ribbon

调用超时的时间可以在yml中配置

ribbon:
  #指的是建立连接所用的时间,适用于网络状态正常的情况下,两端连接所用的时间
  ReadTimeout: 5000
  #指的是建立连接后从服务器读取到可用资源所用的时间
  ConnectTimeout: 5000

日志检测

1.写配置类
@Configuration
public class AsyncConfiguration {
   @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}
2.FeignClient注解中指定该配置类

@FeignClient(configuration = AsyncConfiguration .class)

3.配置yml
logging:
  level:
    # feign日志以什么级别监听哪个接口
    com.fcs.omp.feign.cpc.service.CpcCloudAccountService: debug

OpenFeign详细使用解析 本文详解Spring Cloud OpenFeign的核心用法,涵盖声明式接口定义、动态代理原理及REST请求模板配置。通过实例解析注解驱动开发、请求拦截器与日志定制。帮助开发者快速实现微服务间高效通信,简化服务调用代码,提升分布式系统可维护性。适用于需整合多服务的Spring Cloud项目实战参考。 阅读详情

相关推荐

SpringCloud——OpenFeign详解

目录 一、OpenFeign介绍 1、概念 2、作用 3、架构图 二、OpenFeign案例 1、案例说明 2、搭建Eureka服务端 (1)创建maven工程 (2)导入依赖 (3)配置application.yml (4)创建主启动类 (5)启动Eureka注册中心 3、搭建服务提供者Provider80 (1)创建maven工程 (2)导入依赖 (3)配置application.yml (4)创建启动类 (5)创建controller ......

weixin_50616848的博客 9033

SpringCloud 之OpenFeign使用总结

文章目录@FeignClient注解 中属性 contextId使用OpenFeign使用okhttp3作为请求客户端 @FeignClient注解 中属性 contextId使用 @FeignClient注解 中属性 contextId 比如我们有个user服务,但user服务中有很多个接口,我们不想将所有的调用接口都定义在一个类中,比如: Client 1 @FeignClient(name = "optimization-user") public interface UserRemoteClient

const_ 1426

SpringCloud - OpenFeign 参数传递和响应处理(全网最详细)

因为 openfeign 是 伪HttpClient 对象,我们在远程调用他的客户端提供的接口时,并不知道你到底是路径传参还是问号传参,因此需要通过注解的方式来指明传参方式(就像 Spring Web 一样,只不过 Spring Web 中如果没指明传参类型,底层会按默认方式走,而 openfeign 则没有).然而,需要注意的是,OpenFeign 只能处理简单的 Java 对象和 Map 对象,对于复杂的 Java 对象或包含特殊类型的对象,可能无法自动进行正确的序列化和反序列化。

CYK_byte的博客 7571

OpenFeign调用服务初级进阶

上次只讲了Nacos,通过OpenFeign方式调用的初级入门.通过此方式调用,生产者有多个服务时,默认是有轮询负载均衡效果的,底层用到的是Ribbon,如何做到的,怎么去改变或者说以权重策略,可以自行百度研究.记忆的东西太多,先注重实际应用. 实际工作中,往往不是这么简单,想要更好的了解别人是怎么做的?如果达不到创新要求,那么最好先模仿,看看大神是如何运用的.一起看下若依微服务里是如何运用OpenFeign调用服务的. 若依微服务下载地址:RuoYi-Clou

tiantiantbtb的博客 1480

Zipformer实战:5分钟快速搭建语音识别模型(附LibriSpeech测试结果)

本文提供了一份详细的Zipformer语音识别模型实战指南。通过清晰的步骤,指导读者在5分钟内完成从环境配置、LibriSpeech数据集准备到模型训练与测试的全过程。文章重点解析了关键配置参数,并分享了在LibriSpeech测试集上的性能结果,帮助开发者快速评估和应用这一高效的语音识别架构。

weixin_35578748的博客 159

Xilinx SDK调试与FPGA硬件验证全流程解析

本文详细解析了从Vivado导出硬件到Xilinx SDK进行调试与FPGA硬件验证的全流程。重点阐述了正确导出包含bitstream的硬件平台、创建合适的SDK工程、配置Debug会话以编程FPGA,并介绍了串口验证、自定义IP测试以及使用ILA进行软硬件联合调试的高级技巧,帮助开发者高效完成FPGA系统的软硬件协同开发与问题排查。

weixin_28327051的博客 309

OpenFeign使用

spring自带的只有两种策略,随机策略和 轮询策略,可以自定义策略特别注意此配置类不要加/**随机策略负载均衡*/ return new RandomLoadBalancer(loadBalancerClientFactory . getLazyProvider(name , ServiceInstanceListSupplier . class) , name);

onePlus5T的博客 3405

Maya ACES工作流程配置(Arnold 及 RedShift 贴图配置规范-还原出SP-Aces流程下贴图正确的效果) PS还原Aces流程下渲染的图

*如果使用SP,项目工程如果新建的时候设置的就是Aces的流程的话,按规范正常导出即可,贴图会带上相对应的后缀,然后贴图导入材质球的时候会根据后缀自动设置相对应的色彩空间;**万一不是,就自己手动设置一下对应的色彩空间即可;然后点击选择当前的或者选择全部导入的贴图,点击右下角后,开始转换;我复制了一下,一个默认没有LUT的效果,然后另外一个是加载2个LUT后的还原效果,和渲染的效果应该是没有区别的,至少我没有看出明显的区别;把需要转换的贴图拖拽到左侧,然后右面选择需要转换到的相对应的色彩空间;...

Yuulily 7990

OpenFeign简介和使用详解

Feign是一个声明式的Web服务客户端(Web服务客户端就是Http客户端),让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。

怪咖@的博客 4万+

Qt开发实战:QWebEngineView缓存路径详解与自定义配置(Windows/Linux)

本文详细解析了Qt框架中QWebEngineView组件的缓存机制,提供了Windows和Linux系统下的默认缓存路径及自定义配置方案。通过实战代码示例,展示了如何实现跨平台缓存路径管理、权限设置以及企业级应用中的多用户隔离策略,帮助开发者有效管理Web内容缓存,提升应用性能和数据安全性。

weixin_42519826的博客 403

Dify+firecrawl:一个超好用的网页转Markdown API,打造你的第一个能检索爬虫RAG知识库的聊天机器人

Firecrawl是一个超简单的API服务——你扔给它一个URL,它就能把整个网站(包括子页面!)的内容自动抓下来,并且转换成干净、易读的Markdown格式。不用配置网站的站点地图,不用写爬虫规则,API调一下,数据直接到手。接下来我们一起本地部署吧!

2501_91673550的博客 2987

在项目中使用OpenFeign

OpenFeign是一种声明式 、模板化的HTTP客户端。 何为声明式? 就像调用本地方法一样调用远程方法,无需感知操作远程http请求。 何为模板化? Feign会为每一个Feign接口方法创建一个RequestTemplate对象,该对象封装了HTTP请求的全部信息,Feign的模板化就体现在这里。

小小张自由—>张有博 3351

(第14天)Veritas NetBackup(NBU) 配合 RMAN 脚本备份 Oracle 数据库

NBU(Veritas Netbackup)是企业中比较常用的备份软件,通常用于备份企业使用中的系统,数据库,文件等等,通常是搭配 Oracle RMAN 来进行备份 Oracle 数据库。

LuciferLiu_DBA 1638

openFeign的使用

OpenFeign 是一个基于 Spring 的声明式、模板化的 HTTP 客户端,它简化了编写 Web 服务客户端的过程。用户只需创建一个接口并添加相应的注解,即可实现对远程服务的调用。OpenFeign 是 Spring Cloud 的一部分,它支持 Spring MVC 的注解,如 @RequestMapping,使得使用 HTTP 请求访问远程服务就像调用本地方法一样直观和易于维护。Openfeign底层默认使用JDK提供的HttpURLConnection进行通信(不支持连接池),使用Openfe

zyxzyx666的博客 1296

【AI智能体】Codex + Seedance2.5 制作AI视频实战操作详解

【AI智能体】Codex + Seedance2.5 制作AI视频实战操作详解

congge_study的博客 3722

【项目实战】主流车载操作系统,QNX实时操作系统入门介绍

QNX是一种实时操作系统,自1980年代初期由Quantum Software Systems成立以来,已被广泛应用于各种行业和领域。QNX具有实时响应、高可靠性和分布式等特点,为各种设备提供了强大的底层操作系统平台。随着科技的不断发展和进步,QNX系统的应用范围和潜力也在不断扩大。本文将全面介绍QNX系统,包括其引言、背景、系统特性、应用领域和生态系统等方面。QNX作为一种实时操作系统,具有高效的实时性能、高可靠性、分布式、可剪裁性和可扩展性等特点。它在各个领域都有广泛的应用,并拥有一个庞大的生态系统。

奶爸的编程之路,也就一周冷个三天 3066

OpenFeign的理解和使用

一、概述 openFeign是要给声明式的web服务客户端,或叫做声明式REST客户端,它让编写web服务客户端变得简单。 使用它的步骤:创建一个接口并注解它。它支持spring MVC的注解,spring cloud openFeign整合了hystrix,同时,可以和Eureka和ribbon配合使用,可以实现负载均衡的http客户端。 可以理解为是请求转发(RPC调度)的入口。 二、使用步骤 1、引入spring-cloud-starter-openfeign 依赖。 2、启动类上加上@EnableF

cheng的博客 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OpenFeign使用详解(转载)

OpenFeign使用详解 OpenFeign使用详解

xiaoBaiaaaaaa的博客 244

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【SpringCloud】OpenFeign的使用

OpenFeign 是一个声明式的 Web Service 客户端,它让微服务之间的调用变得更简单了。类似于 Controller 调用 Service,只需要创建一个接口,然后添加注解即可以使用 OpenFeign。 本来是 Feign 是由 Netflix 公司开源的组件,后来呢,在16年7月发布了最后一个版本,就将捐给了社区,16年7月,OpenFeign 首个版本 9.0.0 发布后,就一直发布到现在。

程序猿教你打篮球的博客 9908

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

springboot 中使用 openfeign 进行接口调用

在项目开发过程中,我们开发的项目或多或少都会与其他交互的系统进行对接集成,或者是微服务项目之间进行调用,双方相互调用接口来获取或者传递数据,以往我们使用的方式可能有 httpClient、okhttp、httpUrlConnection 等等,今天来学习一下如何使用 openfeign 来进行调用。 一、feign 和 openfeign ? Feign 是 Springcloud 组件中的一个轻量级 Restful 的 HTTP 服务客户端,Feign 内置了 Ribbon,用来做客户端负载均衡,去调.

wxw1997a的博客 1万+

SpringCLoud OpenFeign的使用介绍

【Spring Cloud】OpenFeign是一个声明式的Web Service 客户端,它让微服务之间的调用变得更加简单,类似于controller调用service,只需要创建一个接口,然后添加注解即可使用OpenFeign。

Mwt258的博客 1483

OpenFeign学习使用

Spring Cloud OpenFeign

weixin_44877172的博客 1053

Openfeign入门使用教程

概述:feign是一个声明式的http客户端其作用就是帮助我们优雅的实现http请求的发送。官方地址类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试。

学习笔记 1493

OpenFeign的使用

在hm-api模块下新建一个配置类,定义Feign的日志级别:@Bean。

m0_74197695的博客 1479

springcloud之OpenFeign的使用

springcloud之OpenFeign的使用

abcd7970的博客 1647

OpenFeign使用详解

openfeign是一个java的http客户端,用来简化http调用,先看一个最简单的demo: 这是服务端接口: @RestController public class DemoController { @GetMapping("/hello") public String hello(){ return "hello"; } } openfeign是如何来调用这个接口的呢? public interface Demo { @RequestLine("

若鱼的专栏 9149
上一篇: Git 常用命令
下一篇: feign.FeignException$Unauthorized: status 401 reading
Sonk.
博客等级 码龄8年 84粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sonk.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值