Spring Cloud系列教程三 :声明式服务调用Spring Cloud Fegin(F版)
2010 年 4 月 11 日
Feign集成了Ribbon,让客户端具有负载均衡的能力,同时简化了开发
github地址:https://github.com/erlieStar/spring-cloud-learning
1.项目配置如下
pom.xml
org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.cloud spring-cloud-starter-openfeign
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
欢迎关注
参考博客
[1]https://www.fangzhipeng.com/springcloud/2018/08/03/sc-f3-feign.html