尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

返回主页Do or Not Do, Must Keep Trying To Know The Result !尝试远比想象好 - - - - 弥烟袅绕

返回主页Do or Not Do, Must Keep Trying To Know The Result !尝试远比想象好 - - - - 弥烟袅绕
📅 发布时间:2026/6/30 3:01:36

引入依赖

<!-- pom.xml --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> // 启动类开启 Feign @SpringBootApplication @EnableFeignClients public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } }

回到顶部

二、声明 Feign 客户端

// 调用 user-service 的 Feign 接口 @FeignClient(name = "user-service", path = "/api/users") public interface UserFeignClient { @GetMapping("/{id}") User getUserById(@PathVariable("id") Long id); @PostMapping User createUser(@RequestBody User user); @GetMapping List<User> listUsers(@RequestParam("page") int page, @RequestParam("size") int size); @DeleteMapping("/{id}") void deleteUser(@PathVariable("id") Long id); } // 在 Service 中注入使用 @Service public class OrderService { @Autowired private UserFeignClient userFeignClient; public Order createOrder(Long userId, Long productId) { // 像调用本地方法一样调用远程服务 User user = userFeignClient.getUserById(userId); // 业务逻辑... } }

回到顶部

三、配置超时和重试

# application.yml feign: client: config: default: connectTimeout: 5000 readTimeout: 10000 loggerLevel: FULL user-service: connectTimeout: 3000 readTimeout: 5000 # 全局超时配置 ribbon: ConnectTimeout: 3000 ReadTimeout: 5000 MaxAutoRetries: 1 MaxAutoRetriesNextServer: 2

回到顶部

四、Feign 日志配置

@Configuration public class FeignConfig { @Bean public Logger.Level feignLoggerLevel() { return Logger.Level.FULL; // 记录完整请求响应 } } // 在 FeignClient 中使用自定义配置 @FeignClient(name = "user-service", configuration = FeignConfig.class) public interface UserFeignClient { // ... } # 日志级别说明 # NONE: 无日志(默认) # BASIC: 仅记录请求方法、URL、响应状态码、执行时间 # HEADERS: 记录 BASIC + 请求/响应头 # FULL: 记录 HEADERS + 请求/响应体

回到顶部

五、请求拦截器(传递 Token)

@Component public class FeignAuthInterceptor implements RequestInterceptor { @Override public void apply(RequestTemplate template) { // 从请求上下文获取 Token ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if (attributes != null) { HttpServletRequest request = attributes.getRequest(); String token = request.getHeader("Authorization"); if (token != null) { // 将 Token 传递给下游服务 template.header("Authorization", token); } } } } // 配置拦截器 @Configuration public class FeignConfig { @Bean public RequestInterceptor feignAuthInterceptor() { return new FeignAuthInterceptor(); } }

回到顶部

六、Fallback 降级

@FeignClient(name = "user-service", fallbackFactory = UserFeignFallbackFactory.class) public interface UserFeignClient { @GetMapping("/{id}") User getUserById(@PathVariable("id") Long id); } // 降级工厂:可以获取到异常信息 @Component public class UserFeignFallbackFactory implements FallbackFactory<UserFeignClient> { @Override public UserFeignClient create(Throwable cause) { return new UserFeignClient() { @Override public User getUserById(Long id) { log.error("调用 user-service 失败", cause); return new User(id, "默认用户", "降级数据"); } }; } } # 开启降级 feign.circuitbreaker.enabled: true

相关新闻

  • 嵌入式软件开发回归
  • 如何在数据分析中应用时间序列分析?有哪些常用的时间序列模型?
  • 从入门到实践:全面解析AI Agent(智能体)的技术原理与应用落地

最新新闻

  • 低功耗4G采集器:低耗稳定运行,常年无人值守无忧
  • AiPy 使用心得:一个能替你干活的 AI 工具箱
  • [js] “===“ 及 typeof
  • 开源AI应用平台gstack部署与实战:从零搭建可视化工作流
  • CasaOS:十分钟搭建个人家庭云,旧电脑变全能服务器
  • 我从顺丰转行学AI产品经理·扒完招聘数据没敢盲目乐观

日新闻

  • 【计算机毕业设计案例】基于 Spring Boot+Vue 的电影售票系统设计与实现 前后端分离架构下影院在线购票管理平台(程序+文档+讲解+定制)
  • 到底 TMD 用哪个: npm, pnpm, Yarn, Bun, Deno? 傻瓜, 当然用 npm 啦
  • Google限制Meta使用Gemini模型 凸显AI授权竞争白热化

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号