• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

openfeign实现远程调用

武飞扬头像
专写bug的王同学
帮助1

一 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.  
     
  4.  
    eureka:
  5.  
    client:
  6.  
    service-url:
  7.  
    defaultZone: http://localhost:8761/eureka
  8.  
    spring:
  9.  
    application:
  10.  
    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.  
     
  4.  
    @GetMapping("/provider")
  5.  
    public String providerService(){
  6.  
    return "啤酒饮料矿泉水,瓜子花生八宝粥";
  7.  
    }
  8.  
    }

4.consumer模块:

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

5.写openfeign接口:

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

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

结果:

学新通

 6.原理:

feign->ribbon->eureka

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgjjjfh
系列文章
更多 icon
同类精品
更多 icon
继续加载