Spring Cloud 框架 -- OpenFeign
什么是 OpenFeign
前面无论是基本调用,还是 Hystrix ,我们实际上都是通过手动调用 RestTemplate 来实现远程调用。
使用 RestTemplate 存在一个问题:繁琐,每一个请求,参数不同,请求地址不同,返回数据类型不同,其他都是一样的,所以我们希望能够对请求进行简化。
简化方案就是 OpenFeign。
Spring Cloud OpenFeign,提供 OpenFeign 集成到 Spring Boot 应用中的方式,主要解决微服务之间的调用问题。
OpenFeign 源于 Netflix Feign , 但是 Netflix 中的组件已经停止开源工作,OpenFeign 是 Spring Cloud 团队在 Netflix Feign 的基础上开发出来的声明式服务调用组件。
一个 Hello 示例
继续使用之前的 provider。
新建一个 Spring Boot 模块,创建时,选择 OpenFeign 依赖,如下:
项目创建成功后,在 application.properties 中进行配置,将其注册到eureka 中:
spring.application.name=openfeign
server.port=4000
eureka.client.service-url.defaultZone = http://localhost:1111/eureka
接下来 ,在启动类上添加注解,开启 Feign 的支持:
@SpringBootApplication
@EnableFeignClients
public class OpenfeignApplication {
public static void main(String[] args) {
SpringApplication.run(OpenfeignApplication.class, args);
}
}
接下来,定义 HelloService 接口,去使用 OpenFeign:
@FeignClient("provider") // 调用的服务名
public interface HelloService {
@GetMapping("/hello")
String hello(); // 这里的方法名随意取
}
最后调用 HelloController ,对 HelloService 进行测试:
@RestController
public class HelloController {
@Autowired
HelloService helloService;
@GetMapping("/hello")
public String hello(){
return helloService.hello();
}
}
先启动注册中心 eureka
再启动 provider
最后启动 openfeign
打开 eureka 的后台 http://localhost:1111/
:
可以看到,openfeign 和 provider 都注册到 eureka 上了。
再访问 http://localhost:4000/hello
, 效果如下:
ok!
每天学习一点点,每天进步一点点。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
· Ai满嘴顺口溜,想考研?浪费我几个小时
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密