您的位置:首页 > 编程语言 > Java开发

Spring Cloud OpenFeign的应用(五)

2020-12-19 22:43 2671 查看

一、OpenFeign

1.1、OpenFeign 啥玩意 

  • 官网:Feign 是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需 创建一个接口并在接口上添加注解 即可

1.2、OpenFeign 能干嘛 

这图不难理解:客服端调用服务端有两种方式 ribbon + restTemplate 或 Openfeign;
但是:在我们实际开发当中,往往 一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客服端类来包装这些依赖服务的调用 ;所以,OpenFeign在此基础上做了进一步封装,由他来帮助我们实现依赖服务接口的定义。
因此:需要我们做的非常简单,我们只需要创建一个接口并使用注解的方式来配置他,即可完成对服务提供方的接口绑定。

1.3、OpenFeign 网站

       朋友你需要一个哪样的网址吗?

       官网:cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/#spring-cloud-openfeign
      GitHub:https://github.com/spring-cloud/spring-cloud-openfeign 

二、OpenFeign的演示

          我懒着创建项目了,就基于前面的项目干吧,首先在客户端spring-cloud-user中导入OpenFeign的包,这玩意包底层可以支持OKHTTP的

<!--服务调用 openFeign包-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>

然后定义一个UserOpenFeign的接口,在接口的@FeignClient中写上被调用的服务名称,在接口中写上被调用者的方法

 

 然后再写一个UserOpenFeignController类用于等会测试玩

 

 然后在启动类上加上@EnableFeignClients注解

   

 

 启动两个服务然后调用,结果也是一样

 

 多点几次看两个节点是否都被调用过,发现也被调用了

 

 

 

 从上面结果我们可以看出OpenFeign是默认集成了Ribbon的

这里面补充一点,如果跟过源码的朋友应该知道,OpenFeign默认采用的是HTTP通信,这种通信速度比较慢,如果我们想替换他的默认通信可以在调用端加下如下配置

 

 并且在服务调用端加入如下包

<!--okhttp通信包-->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
</dependency>

如果我们请求的数据过大,如果过大会占用很大的带宽,我们也可以通过配置的方式对大数据进行压缩传送,配置如下;里面关于压缩的配置很多,这里只说明一下方法,使用可以去官网看手册,上面说明的很详细

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: