Spring Cloud Alibaba - Feign
Feign
Feign简介
使用Feign实现消费者客户端
使用Feign+Ribbon实现客户端负载均衡
底层的负载均衡策略还是使用Ribbon通过Feign进行调用
Feign的相关配置
ribbon.eager-load.enabled=true
开启饥饿加载,默认是懒加载此项为false关闭状态,在调用的时候才开始获取服务列表进行负载均衡策略,所以第一次调用会比较缓慢,后面再次调用的速度会有大幅度提升。若设置为true打开状态,则从项目启动的时候就开始获取服务列表并且进行负载均衡策略,所以第一次调用并不会出现迟缓现象。
ribbon.eager-load.clients=xxxxxxxxxx
为哪些客户端开启饥饿加载,多个客户端使用逗号隔开(非必须),xxxxxxxx为客户端的服务名称。不配置的话如果配置了开启饥饿加载,则所有的客户端都开启
feign.client.config.default.read-timeout=2
设置feign读取时间为2 单位为毫秒,设置过小会出现读取超时现象
feign.client.config.default.connect-timeout=2
配置feign连接时间为2单位为毫秒,超过实现就不再连接
feign.client.config.default.logger-level=full
设置feign的日志记录等级
tips:default代表使用于所有服务
feign.client.config.[name].read-timeout=5
feign.client.config.[name].connect-timeout=5
配置具体服务的连接和读取时限,name为对应的服务名称
feign.httpclient.enabled=true
默认值也为true,代表是否使用默认的底层为Apache Http的客户端使用Feign
feign.httpclient.max-connections=200
指定客户端最大连接数
feign.httpclient.max-connections-per-route=50
指定每个路由路径的最大连接数
tips:feign的老版本底层采用的JDK的httpURLconnection发起远程调用,效率不如restTemplate,新版本效率差不多
脱离Ribbon的Feign远程调用
无负载均衡功能,只能使用远程调用
需要在@FeignClient注解中配置url属性,需要将连接地址写死。并且在接口中的方法上@GetMapping后面也不需要加路径,这样方法会自动调用url中的路径。
Feign的声明代码统一封装
实际开发时,会将有关于Feign的声明代码统一放入一个项目模块xxxxx-common中管理。实现代码复用,减少冗余。common模块中也需要引入相应的jar包依赖。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律