介绍
Feign 集成了 Ribbon, 让客户端具有负载均衡的能力, 同时简化了开发
GitHub 地址: https://github.com/erlieStar/spring-cloud-learning
1. 项目配置如下
pom.xml
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-openfeign</artifactId>
- </dependency>
application.YAML
- server:
- port: 9001
- spring:
- application:
- name: consumer-feign
- eureka:
- client:
- service-url:
- defaultZone: http://localhost:7001/eureka
2. 启动类加上 @EnableFeignClients 注解开启 Feign 的功能
3. 定义接口, 通过 @FeignClient(服务名) 来指定调用哪个服务
- @RestController
- @EnableEurekaClient
- @EnableFeignClients
- @SpringBootApplication
- public class ConsumerFeign {
- public static void main(String[] args) {
- SpringApplication.run(ConsumerFeign.class);
- }
- @Autowired
- private SimpleClient simpleClient;
- @FeignClient(value = "producer-simple")
- public interface SimpleClient {
- @RequestMapping("hello")
- String hello(@RequestParam String name);
- }
- @RequestMapping("hello")
- public String hello(@RequestParam String name) {
- return simpleClient.hello(name);
- }
- }
启动 eureka-service(spring-cloud-eureka)
接着启动 2 个 producer-simple(spring-cloud-ribbon)
初始端口为 8001, 启动一个实例后, 修改端口为 8002, 再启动一个实例
访问 http://localhost:9001/hello?name=xiaoshi
交替显示
- hello xiaoshi, I am from port: 8001
- hello xiaoshi, I am from port: 8002
来源: https://blog.csdn.net/zzti_erlie/article/details/104093198