当前位置:   article > 正文

openfeign实现远程调用_openfeign远程调用

openfeign远程调用

一 openfeign简介

Feign 是声明性(注解)web 服务客户端它使编写 web 服务客户端更加容易请创建一个接口并对其进行注解.它具有可插入注解支持,包括Feign注解和JAXRS注解Feign 还支持可插拔编码器和解码器。Spring cloud 添加了对Spring MVC注解的支持,并支持使用 HttpMessageConverters,Spring Web 中默认使用的注解。Spring cloud集成了Ribbon和Eureka以及 Spring cloud LoadBalancer,以在使用 Feign 时提供负载平衡的 http 客户端。

二、使用

1.分别建立提供者和消费者两个服务模块,模拟消费者调用提供者服务的场景

 2.配置文件如下:

  1. server:
  2. port: 8080
  3. eureka:
  4. client:
  5. service-url:
  6. defaultZone: http://localhost:8761/eureka
  7. spring:
  8. application:
  9. name: provider-service
  1. server:
  2. port: 8081
  3. spring:
  4. application:
  5. name: consumer-service
  6. eureka:
  7. client:
  8. service-url:
  9. defaultZone: http://localhost:8761/eureka
  10. ribbon:
  11. ReadTimeout: 3000 #调用超时时间
  12. ConnectTimeout: 3000 #连接超时时间

3.provider模块:

需要注意的是,如果要实现带参传入,则传参注解不能省略。

  1. @RestController
  2. public class ProviderController {
  3. @GetMapping("/provider")
  4. public String providerService(){
  5. return "啤酒饮料矿泉水,瓜子花生八宝粥";
  6. }
  7. }

4.consumer模块:

  1. @RestController
  2. public class ConsumerController {
  3. @Autowired
  4. private consumerProviderFeign consumerProviderFeign;
  5. @GetMapping("/consumer")
  6. public String consumerService(){
  7. System.out.println("您有新的客户订单");
  8. String s = consumerProviderFeign.providerService();
  9. return s;
  10. }
  11. }

5.写openfeign接口:

另外,还应在启动类加上注解@EnableFeignClients

  1. @FeignClient(value = "provider-service")
  2. public interface consumerProviderFeign {
  3. @GetMapping("/provider")
  4. public String providerService();
  5. }

结果:

 6.原理:

feign->ribbon->eureka

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/84566
推荐阅读
相关标签
  

闽ICP备14008679号