作者:手机用户2502940341 | 来源:互联网 | 2023-09-24 08:21
1.1、OpenFeign啥玩意 官网:Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需 创建一个接口并在接口上添加注解 即可1.2、OpenFe
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的
org.springframework.cloud
spring-cloud-starter-openfeign
2.2.3.RELEASE
然后定义一个UserOpenFeign的接口,在接口的@FeignClient中写上被调用的服务名称,在接口中写上被调用者的方法
然后再写一个UserOpenFeignController类用于等会测试玩
然后在启动类上加上@EnableFeignClients注解
启动两个服务然后调用,结果也是一样
多点几次看两个节点是否都被调用过,发现也被调用了
从上面结果我们可以看出OpenFeign是默认集成了Ribbon的
这里面补充一点,如果跟过源码的朋友应该知道,OpenFeign默认采用的是HTTP通信,这种通信速度比较慢,如果我们想替换他的默认通信可以在调用端加下如下配置
并且在服务调用端加入如下包
io.github.openfeign
feign-okhttp
如果我们请求的数据过大,如果过大会占用很大的带宽,我们也可以通过配置的方式对大数据进行压缩传送,配置如下;里面关于压缩的配置很多,这里只说明一下方法,使用可以去官网看手册,上面说明的很详细
git源码: https://github.com/ljx958720/-Spring-Cloud-OpenFeign-.git