赞
踩
Feign 是声明性(注解)web 服务客户端它使编写 web 服务客户端更加容易请创建一个接口并对其进行注解.它具有可插入注解支持,包括Feign注解和JAXRS注解Feign 还支持可插拔编码器和解码器。Spring cloud 添加了对Spring MVC注解的支持,并支持使用 HttpMessageConverters,Spring Web 中默认使用的注解。Spring cloud集成了Ribbon和Eureka以及 Spring cloud LoadBalancer,以在使用 Feign 时提供负载平衡的 http 客户端。
1.分别建立提供者和消费者两个服务模块,模拟消费者调用提供者服务的场景
2.配置文件如下:
- server:
- port: 8080
-
- eureka:
- client:
- service-url:
- defaultZone: http://localhost:8761/eureka
- spring:
- application:
- name: provider-service
- server:
- port: 8081
- spring:
- application:
- name: consumer-service
- eureka:
- client:
- service-url:
- defaultZone: http://localhost:8761/eureka
- ribbon:
- ReadTimeout: 3000 #调用超时时间
- ConnectTimeout: 3000 #连接超时时间
3.provider模块:
需要注意的是,如果要实现带参传入,则传参注解不能省略。
- @RestController
- public class ProviderController {
-
- @GetMapping("/provider")
- public String providerService(){
- return "啤酒饮料矿泉水,瓜子花生八宝粥";
- }
- }
4.consumer模块:
- @RestController
- public class ConsumerController {
- @Autowired
- private consumerProviderFeign consumerProviderFeign;
-
- @GetMapping("/consumer")
- public String consumerService(){
- System.out.println("您有新的客户订单");
- String s = consumerProviderFeign.providerService();
- return s;
- }
- }
5.写openfeign接口:
另外,还应在启动类加上注解@EnableFeignClients
- @FeignClient(value = "provider-service")
- public interface consumerProviderFeign {
- @GetMapping("/provider")
- public String providerService();
- }
结果:
6.原理:
feign->ribbon->eureka
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。