微服务速成-OpenFeign远程调用 📅 发布时间:2026/7/3 2:08:21 👁️ 浏览次数: 快速入门使用引入依赖spring-cloud-starter-openfeign启动类加上注解EnableFeignclientOpenFeign的使用和SpringMvc完全是反过来的非常好理解接下来我们举例说明注解SpringMVCOpenFeign通用性Controller后端页面控制器不使用不通用RestControllerJSON 接口控制器不使用不通用RequestMapping定义请求路径定义远程接口路径通用Get/PostMapping限定请求方式限定远程请求方式通用RequestParam获取 url 参数拼接查询参数通用PathVariable获取路径变量填充路径占位符通用RequestBody接收 JSON 请求体传递 JSON 请求体通用代码举例对比SpringMVCRestController public class OrderController{ GetMapping(/order/{orderId}) public Order getOrderInfo(PathVariable (orderId)Long orderId){} }OpenFeign注意事项openfeign远程调用自动实现负载均衡只要是业务相关的代码Controller里面的代码可以直接拿到FeignClient里面用负载均衡服务端负载均衡订单服务-→请求商品服务-→负载均衡调用商品服务的实例客户端的负载均衡多个用户点击服务-→请求到统一网关→负载均衡的分配到对应的服务器来处理请求日志开启openfeign默认调用远程是不输出日志的第一步配置中修改日志级别logging.level. 类的reference路径 :debug第二步配置bean超时处理防止某个服务单点长时间卡死导致整体系统不可用默认超时时间 连接超时连接服务事件10s 读超时业务处理事件60s修改默认的全局超时配置spring.cloud.openfeign.client.config.defalt.……对单个服务进行配置只需要在defalut下方再起一行写上对应的服务名称即可测试一下我们在productController里面让线程睡眠5秒触发连接超时连接重试Configuration public class FeignConfig { Bean public Retryer feignRetryer() { // 参数每100ms重试一次最多等1000ms最多重试3次 return new Retryer.Default(100, 1000, 3); } }RequestInterce请求拦截器:每次发送远程调用前进行拦截Component public class FeignAuthInterceptor implements RequestInterceptor { Override public void apply(RequestTemplate template) { // 给每个 Feign 请求加一个请求头 template.header(Authorization, Bearer xxx-token-xxx); // 或者从当前请求上下文拿 Token // RequestAttributes attributes RequestContextHolder.getRequestAttributes(); // String token ((ServletRequestAttributes) attributes).getRequest().getHeader(Authorization); // template.header(Authorization, token); } }和SpringMVC的请求拦截器的对比Component public class MyInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { System.out.println(请求来了 request.getRequestURI()); return true; // true 放行false 拦截 } } 然后在配置类里注册才能生效 Configuration public class WebConfig implements WebMvcConfigurer { Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyInterceptor()).addPathPatterns(/**); } }远程调用的fallback兜底机制 即发生调用错误的时候更改配置:openfeign.sentinel.enabled:true在远程调用的注解中加上fallbackFeignClient(value service-product,fallback ProductClientFallback.class) public interface ProductClient { GetMapping(/product) Product getProduct(RequestParam Long productId); }编写一个类实现当前远程调用的接口Component public class ProductClientFallback implements ProductClient { Override public Product getProduct(Long productId) { Product product new Product(); product.setId(String.valueOf(productId)); product.setName(fallback-未知商品); product.setDescription(未知); product.setPrice(0D); product.setNumber(0L); return product; } }
AI大模型的思维过程终于可以被看懂了 这项由中国科学院软件研究所中文信息处理实验室联合中国科学院大学开展的研究,以预印本形式发布于2026年6月22日,论文编号为arXiv:2606.23404,有兴趣深入了解的读者可以通过该编号查询完整论文。当一个顶尖AI模型在思考一道数学题时ÿ… 2026/7/3 2:06:21
摄像头 AI 前处理:模型没变,输入脏了照样识别错 摄像头 AI 前处理:模型没变,输入脏了照样识别错 一、深度引言:前处理不是胶水代码,是模型感官的决定性环节 做边缘视觉 AI,现场反馈最多的不是"模型精度不够",而是"明明同一张图,… 2026/7/3 2:04:21
混合检索 RAG:向量像雷达,关键词像门牌号 混合检索 RAG:向量像雷达,关键词像门牌号 RAG 检索只用向量,很容易漏掉精确词;只用关键词,又容易抓不住语义。混合检索的价值就在这里:向量像雷达,能找语义相近;关键词像门牌号&… 2026/7/3 2:04:21
当AI成为同事:ChatGPT企业级应用场景下的效率革命观察 当AI成为同事:ChatGPT企业级应用场景下的效率革命观察 最近两个月,团队内部悄然完成了一次工作流“静默升级”。作为技术管理者,我明显感觉到,围绕GPT-4系列模型构建的辅助系统,正从“玩具”蜕变为“工具”。这个变化… 2026/7/3 3:24:52
字节跳动后端一二三面:一面看索引和线程,二面看系统链路,三面专挑你自称擅长的地方问 这篇字节后端三轮面经很有代表性,因为它完整展示了字节一种很典型的筛人方式: 一面先看常规后端基础和一道算法题 二面开始把系统链路、海量数据场景和排序细节混在一起问 三面不再平均发力,而是专挑你自称擅长的模块往下挖 这种流程对候… 2026/7/3 3:24:52
HarmonyOS ArkTS 实战:实现一个校园考试倒计时复习计划应用 项目效果 本文实现的是一个基于 HarmonyOS 和 ArkTS 的校园考试倒计时复习计划应用。项目使用 ArkUI 组件完成页面布局,通过 State 管理考试计划数据,实现考试科目添加、考试倒计时、复习进度切换、优先级标记、状态筛选、计划删除和数量统计等功能。 最… 2026/7/3 3:22:52
联合体和枚举 一。联合体核心定义:一种自定义数据类型,所有成员共享一块内存空间,所以联合体也叫共用体,它的关键字为 union。给结构体其中一个成员赋值,其他成员的值也跟着变化(1)内存分配规则:… 2026/7/3 3:22:52
SpringBoot燃诺健身房管理系统设计与实现 选题背景 随着全民健身国家战略的深入推进以及居民健康意识的普遍提升,我国健身行业正迎来前所未有的发展机遇。作为提供专业健身服务的主要场所,健身房的数量与规模持续扩张,会员群体也日益庞大。然而,传统健身房依赖纸质记录、人… 2026/7/3 3:20:51
为什么workbuddy连win+D显示桌面都做不到,Claude和Codex却可以?这里面是安全的取舍 现象我尝试了让workbuddy帮我把电脑设置为只显示桌面,把其他窗口都最小化。它试了N种方法都做不到;国内agent普遍不能真的操作电脑;但是国外的Claude和Codex都可以。真正的情况(WorkBuddy 的对话回复功能)没法直接控制… 2026/7/3 3:18:51
如何5分钟快速上手XUnity.AutoTranslator:打破语言障碍的游戏翻译神器终极指南 如何5分钟快速上手XUnity.AutoTranslator:打破语言障碍的游戏翻译神器终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言障碍而错过精彩的游戏剧情?面对日… 2026/7/3 0:01:58
3种策略管理Playnite便携版:从基础部署到高级维护的完整指南 3种策略管理Playnite便携版:从基础部署到高级维护的完整指南 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址… 2026/7/3 0:05:59
2026江苏三维扫描仪定制厂家:一条很现实的分水岭——“会用”和“用对” 在江苏制造业的三维扫描项目里,有一个很容易被忽略的分界线: 👉 会用设备,不等于用对设备。 尤其在江苏GOM三维扫描仪定制厂家、江苏蔡司3D扫描仪定制厂家项目中,这条分界线会直接决定系统最终是“工具”,还… 2026/7/3 0:07:59