微服务远程调用openFeign简单回顾(内附源码示例)
目录
一. OpenFeign简介
二. OpenFeign原理
演示使用
provider模块
消费者模块
配置全局feign日志
示例源代码:
一. OpenFeign简介
OpenFeign是SpringCloud服务调用中间件,可以帮助代理服务API接口。并且可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。
二. OpenFeign原理
添加@EnableFeignClients注解开启对@FeignClient注解的扫描加载处理。根据Feign Client的开发规范,定义接口并添加@FeiginClient注解
当程序启动之后,会进行包扫描,扫描所有@FeignClient注解的接口,并将这些信息注入到IOC容器中。当定义的Feign接口被调用时,通过JDK的代理的方式生成具体的RequestTemplate。Feign会为每个接口方法创建一个RequestTemplate对象。该对象封装了HTTP请求需要的所有信息,例如请求参数名、请求方法等信息。
然后由RequestTemplate生成Request,把Request交给Client去处理,这里的Client可以是JDK原生的URLConnection、HttpClient或Okhttp。最后Client被封装到LoadBalanceClient类,看这个类的名字既可以知道是结合Ribbon负载均衡发起服务之间的调用,因为在OpenFeign中默认是已经整合了Ribbon了。
演示使用
创建一个简单springcloud项目,有两个模块consumer(消费者)和provider(生产者)模块
两个模块都需要注册进nacos注册中心,也可以使用其他的注册中心比如Apollo或者Eureka等,这里演示使用nacos
注册配置naocs具体步骤不再演示,可以查看博主之前文章进行注册配置
引入openFeign依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
provider模块
配置:

书写生产者测试接口:

消费者模块
配置:

启动两个模块查看是否注册进nacos中

消费者主启动类中添加远程调用注解

书写feign调用接口

控制层调用feign接口

测试:


配置全局feign日志
feign的调用日志需要单独进行配置,这样服务之间进行调用时才可以看到服务之间调用的日志信息
书写feign日志配置类

由于springboot默认日志级别是info, feign的debug日志级别就不会输出,所以还需要在配置中调整feign的debug级别打印

重启测试:
查看控制台可以看到服务调用接口的信息:

示例源代码:
源代码
密码:h6kp
相关文章:
微服务远程调用openFeign简单回顾(内附源码示例)
目录 一. OpenFeign简介 二. OpenFeign原理 演示使用 provider模块 消费者模块 配置全局feign日志 示例源代码: 一. OpenFeign简介 OpenFeign是SpringCloud服务调用中间件,可以帮助代理服务API接口。并且可以解析SpringMVC的RequestMapping注解下的接口&#x…...
【云计算小知识】云环境是什么意思?有什么优点?
随着云计算的快速发展,了解云计算相关知识也是运维人员必备的。那你知道云环境是什么意思?有什么优点?云环境安全威胁有哪些?如何保证云环境的运维安全?这里我们就来简单聊聊。 云环境是什么意思? 云环境是…...
【搜索引擎Solr】Apache Solr 神经搜索
Sease[1] 与 Alessandro Benedetti(Apache Lucene/Solr PMC 成员和提交者)和 Elia Porciani(Sease 研发软件工程师)共同为开源社区贡献了 Apache Solr 中神经搜索的第一个里程碑。 它依赖于 Apache Lucene 实现 [2] 进行 K-最近邻…...
PostgreSQL 设置时区,时间/日期函数汇总
文章目录 前言查看时区修改时区时间/日期操作符和函数时间/日期操作符日期/时间函数:extract,date_part函数支持的field 数据类型格式化函数用于日期/时间格式化的模式: 扩展 前言 本文基于 PostgreSQL 12.6 版本,不同版本的函数…...
性能测试Ⅱ(压力测试与负载测试详解)
协议 性能理论:并发编程 ,系统调度,调度算法 监控 压力测试与负载测试的区别是什么? 负载测试 在被测系统上持续不断的增加压力,直到性能指标(响应时间等)超过预定指标或者某种资源(CPU&内存)使用已达到饱和状…...
【Python入门系列】第十八篇:Python自然语言处理和文本挖掘
文章目录 前言一、Python常用的NLP和文本挖掘库二、Python自然语言处理和文本挖掘1、文本预处理和词频统计2、文本分类3、命名实体识别4、情感分析5、词性标注6、文本相似度计算 总结 前言 Python自然语言处理(Natural Language Processing,简称NLP&…...
【GD32F103】自定义程序库08-DMA+ADC
DMA 自定义函数库说明: 将DMA先关的变量方式在一个机构体中封装起来,主要参数有 dma外设,时钟,通道,外设寄存器地址,数据传输宽度,数据方向,外设是能dma传输使能回调函数,扫描模式中断编号dma中断使能传输完成标志数据存储空间使用一个枚举类型指明每个DMA绑定到那个…...
集成了Eureka的应用启动失败,端口号变为8080
问题 报错:集成了Eureka的应用启动失败,端口号变为8080。 原来运行的项目,突然报错,端口号变为8080: Tomcat initialized with port(s): 8080 (http)并且,还有如下的错误提示: RedirectingE…...
CMU 15-445 -- Timestamp Ordering Concurrency Control - 15
CMU 15-445 -- Timestamp Ordering Concurrency Control - 15 引言Basic T/OBasic T/O ReadsBasic T/O WritesBasic T/O - Example #1Basic T/O - Example #2 Basic T/O SummaryRecoverable Schedules Optimistic Concurrency Control (OCC)OCC - ExampleSERIAL VALIDATIONOCC …...
MURF2080CT/MURF2080CTR-ASEMI快恢复对管
编辑:ll MURF2080CT/MURF2080CTR-ASEMI快恢复对管 型号:MURF2080CT/MURF2080CTR 品牌:ASEMI 芯片个数:2 芯片尺寸:102MIL*2 封装:TO-220F 恢复时间:50ns 工作温度:-50C~150C…...
去除 idea warn Raw use of parameterized class ‘Map‘
去除 idea warn Raw use of parameterized class ‘Map’ 文档:Raw use of parameterized class ‘Map’… 链接:http://note.youdao.com/noteshare?id99bf4003db8cc5ae9813ee11e58c4d13&sub5856371AEFA740AF8FA4D8935B4F6912 添加链接描述 public…...
使用BERT分类的可解释性探索
最近尝试了使用BERT将告警信息当成一个文本去做分类,从分类的准召率上来看,还是取得了不错的效果(非结构化数据强标签训练,BERT确实是一把大杀器)。但准召率并不是唯一追求的目标,在安全场景下,…...
web APIs-练习二
轮播图点击切换: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"…...
rpc通信原理浅析
rpc通信原理浅析 rpc(remote procedure call),即远程过程调用,广泛用于分布式或是异构环境下的通信,数据格式一般采取protobuf。 protobuf(protocol buffer)是google 的一种数据交换的格式,它独立于平台语…...
【机器学习】分类算法 - KNN算法(K-近邻算法)KNeighborsClassifier
「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:零基础快速入门人工智能《机器学习入门到精通》 K-近邻算法 1、什么是K-近邻算法?2、K-近邻算法API3、…...
Spring Security 6.x 系列【64】扩展篇之多线程支持
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Spring Security 版本 6.1.0 本系列Spring Authorization Server 版本 1.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录 1. 问题演示2. 解决方案:…...
Elasticsearch 简单搜索查询案例
1.MySql表结构/数据 SET FOREIGN_KEY_CHECKS0;-- ---------------------------- -- Table structure for user_lables -- ---------------------------- DROP TABLE IF EXISTS user_lables; CREATE TABLE user_lables (id varchar(255) DEFAULT NULL COMMENT 用户唯一标识,age…...
【RabbitMQ(day1)】RabbitMQ的概述和安装
入门RabbitMQ 一、RabbitMQ的概述二、RabbitMQ的安装三、RabbitMQ管理命令行四、RabbitMQ的GUI界面 一、RabbitMQ的概述 MQ(Message Queue)翻译为消息队列,通过典型的【生产者】和【消费者】模型,生产者不断向消息队列中生产消息&…...
Too many files with unapproved license: 2 See RAT report
解决方案 mvn -Prelease-nacos -Dmaven.test.skiptrue -Dpmd.skiptrue -Dcheckstyle.skiptrue -Drat.numUnapprovedLicenses100 clean install 或者 mvn -Prelease-nacos -Dmaven.test.skiptrue -Drat.numUnapprovedLicenses100 clean install...
Windows11的VTK安装:VS201x+Qt5/Qt6 +VTK7.1/VTK9.2.6
需要提前安装好VS2017和VS2019和Qt VS开发控件以及Qt VS-addin。 注意Qt6.2.4只能跟VTK9.2.6联合编译(目前VTK9和Qt6的相互支持版本)。 首先下载VTK,需要下载源码和data: Download | VTKhttps://vtk.org/download/ 然后这两个文…...
基于S7-200 PLC与组态王的大棚控制系统:产品原理图与IO分配详解
基于S7-200 PLC和组态王温室大棚控制 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面 菜农张叔上周还给我打电话吐槽:“小王啊,上周那场降温加突然转晴,我三点爬起来盖半层棉被…...
OpenClaw异常处理手册:百川2-13B任务失败排查全攻略
OpenClaw异常处理手册:百川2-13B任务失败排查全攻略 1. 为什么需要这份手册 上周我尝试用OpenClaw百川2-13B模型自动处理日报生成任务时,连续三天凌晨任务失败。每次起床看到控制台的红色错误提示,都要花半小时翻日志找原因。最崩溃的是&am…...
AI虚拟员工平台完整搭建教程:从源码获取到正式上线,全流程记录
温馨提示:文末有资源获取方式最近AI赛道又火了一个新方向,很多人都在讨论,但真正能用起来的没几个。技术门槛摆在那,普通用户想上手确实不容易。今天这篇教程,我把从源码部署到正式上线的完整过程整理出来,…...
PHP 8.5 升级生存指南:避免凌晨两点回滚的检查清单
定目标版本,定义内部支持策略在动 CI 或 Composer 之前,先回答一个问题:在你的组织里,这次升级"完成"意味着什么?确定目标和截止日期PHP 分支有两年的活跃支持,然后是两年的安全修复。官方支持表…...
B站Index-AniSora本地部署避坑指南:4张4090显卡实测+常见错误解决
4张RTX 4090实战:Index-AniSora动漫生成模型深度部署手册 当四张RTX 4090显卡同时亮起RGB灯效时,机箱内涌动的不仅是1.2kW的功耗,更是一个能够将二次元幻想转化为动态画面的数字炼金术工坊。B站开源的Index-AniSora模型正在重新定义独立创作者…...
2026降AI率工具红黑榜:降AI率网站怎么选?看完少走弯路
千笔AI、ThouPen、豆包位列红榜,精准适配国内高校AI率检测规范;黑榜需避开低质免费工具、无正规检测对接平台及改写痕迹明显的工具;选择时应优先匹配三维模型:降AI效果-学术合规性-使用成本。 一、红榜:10 款高分论文降…...
PyCharm项目环境混乱?试试用Mamba+environment.yml打造可复现的纯净工作流
PyCharm项目环境混乱?试试用Mambaenvironment.yml打造可复现的纯净工作流 当团队协作开发Python项目时,最令人头疼的问题莫过于"在我机器上能跑"的经典困境。不同成员使用不同版本的依赖包,或者本地环境被多个项目污染,…...
终极指南:使用Rust工具uesave轻松编辑虚幻引擎游戏存档
终极指南:使用Rust工具uesave轻松编辑虚幻引擎游戏存档 【免费下载链接】uesave 项目地址: https://gitcode.com/gh_mirrors/ue/uesave uesave-rs是一款基于Rust语言开发的专业工具,专门用于读取和写入虚幻引擎的GVAS格式游戏存档文件。这款强大…...
Qwen3.5-35B-A3B-AWQ-4bit镜像技术亮点:服务重启自动恢复+模型热加载+无状态前端设计
Qwen3.5-35B-A3B-AWQ-4bit镜像技术亮点:服务重启自动恢复模型热加载无状态前端设计 1. 平台核心能力介绍 Qwen3.5-35B-A3B-AWQ-4bit是一款专为视觉多模态理解设计的量化模型,它将强大的图文理解能力与高效的部署特性完美结合。这个模型特别适合需要分析…...
Polars 2.0清洗架构解密(含完整数据流拓扑图):为什么92%的团队还在用Pandas硬扛TB级脏数据?
第一章:Polars 2.0清洗架构解密:从设计哲学到性能跃迁Polars 2.0 的清洗架构并非简单功能叠加,而是以“零拷贝流式处理”与“惰性执行图优化”为双核驱动的范式重构。其设计哲学根植于两个核心信条:数据不应在内存中被无谓复制&am…...
