SpringCloud服务接口调用OpenFeign及使用的方法是什么


这篇“SpringCloud服务接口调用OpenFeign及使用的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringCloud服务接口调用OpenFeign及使用的方法是什么”文章吧。

OpenFeign简介

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

在学习Ribbon时,服务间调用使用的是RestTemplate+Ribbon实现,而Feign在此基础上继续进行了封装,使服务间调用变得更加方便。

而OpenFeign可以理解为Feign的升级版。

OpenFeign使用

OpenFeign应用在消费端,服务端不需要做任何改变

创建一个新的消费端cloud-consumer-feign-order80,首先引入相关依赖,引入OpenFeign以后,可以看到OpenFeign内置了Ribbon,所以他底层实现负载均衡还是依赖于Ribbon


<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId&gt.yellowstar.springcloud</groupId><artifactId>cloud-apimons</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

编写配置文件

server.port=80eureka.client.register-with-eureka=falseeureka.client.service-url.defaultZone=eureka7001:7001/eureka,eureka7002:7002/eureka

在启动类上添加如下注解

@EnableFeignClients

对于OpenFeign来说,服务间的调用需要在消费端创建一个接口,这个接口类似于服务端

ponent@FeignClient(value="CLOUD-PAYMENT-SERVICE")publicinterfacePaymentFeignService{@GetMapping("/payment/get/{id}")&nbspmonResult<Payment>getPayment(@PathVariable("id")intid);}

OpenFeign超时控制

默认情况下,OpenFeign调用方法,会给该方法一秒钟的执行时间,如果一秒钟之后没有执行完方法,则直接报错。而OpenFeign底层调用的Ribbon,也就是说我们需要设置Ribbon服务间调用的等待时间

#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间ribbon.ReadTimeout=5000l#指的是建立连接后从服务器读取到可用资源所用的时间ribbon.ConnectTimeout=5000

如果不设置,会报一下错误

OpenFeign日志

OpenFeign在调用http请求时,可以将请求的日志完整的打印出来,有以下几种日志级别,默认是无日志。

  • NONE:默认的,不显示任何日志;

  • BASIC:仅记录请求方法、URL、响应状态码及执行时间;

  • HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息;

  • FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据。

首先需要对Feign的日志级别进行配置

@ConfigurationpublicclassFeignConfig{@BeanLogger.LevelfeignLoggerLevel(){returnLogger.Level.FULL;}}

添加配置文件

#feign日志以什么级别监控哪个接口logging.level.yellowstar.springcloud.service.PaymentFeignService=debug

接下来就可以观察http请求的完整信息了

以上就是关于“SpringCloud服务接口调用OpenFeign及使用的方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注主机评测网行业资讯频道。


上一篇:springboot怎么配置http跳转https

下一篇:Golang内存模型实例源码分析


Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
热门搜索