OpenFeign 服务调用与负载
需要建两个工程,一个是服务提供者,一个是服务调用者
服务提供者
一个普通的 nacos 服务,增加一个 controller 方法即可,上一篇文章刚说了,这里简单说下
<!-- 服务提供者不调用其他服务,所以只需要注册到 nacos 的依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置文件
server:
port: 8081
spring:
application:
name: my-provider-test
cloud:
nacos:
discovery:
server-addr: localhost:8848 # Nacos服务注册中心地址
代码
// 启动类
@EnableDiscoveryClient
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class,args);
}
}
// controller
@RestController
public class TestController {
@GetMapping("/test")
public String testGetConfig(){
return "test";
}
}
服务消费者
pom 依赖
<!-- 服务调用,底层需要 loadbalancer 做负载 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<!-- 服务注册 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置文件
server:
port: 8082
spring:
application:
name: my-consumer-test
cloud:
nacos:
discovery:
server-addr: localhost:8848 # Nacos服务注册中心地址
代码
// 一个 Feign 接口,value 是服务名称
@FeignClient(value = "my-provider-test")
public interface TestFeign {
// 这个方法要和服务提供者那里保持一致
@GetMapping("/test")
String test();
}
// controller
@RestController
public class Controller {
@Resource
private TestFeign testFeign;
@GetMapping("/test")
public String testFeign(){
return testFeign.test();
}
}
// 启动类
@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients // 开启 Feign
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
启动服务,nacos 能看到这俩服务

调用接口测试

生产中一般不会不是这样,通常服务提供者也是消费者,一般 controlle 继承 Feign 接口,@RequestMapping、@RequestBody 等这些注解也能继承,所以 Feign 中既定义了 Feign 也定义了接口,如果接入 swagger,swagger 以 controller 来构建 dock,这样代码就会清爽很多
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具