SpringCloud 服务调用 - OpenFeign
程序员文章站
2022-06-13 11:38:03
...
OpenFeign概述
- Feign是一个声明式的WebService客户端。使用Feign能让编写Web Service客户端更加简单。
- 它的使用方法是
定义一个服务接口然后在 上面添加注解
。Feign也支持可插拔式的编码器和解码器。 - SpringCloud对Feign进行了封装使其支持了Spring MVC标准注解和HttpMessageConverters.
- Feign可以与Eureka和Ribbon组合使用以支持负载均衡
OpenFeign作用:
下面的Feign 即指的是OpenFeign
OpenFeign 和 Feign(以停止维护) 区别:
OpenFeign使用
OpenFeign用在服务的调用方,使用方法是 接口 + 注解
- 先在项目添加依赖
<!--openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
-
主启动类添加注解
@EnableFeignClients
@EnableFeignClients @EnableEurekaClient @EnableDiscoveryClient @SpringBootApplication public class SpringcloudConsumerOrderApplication {
-
写新建服务接口并添加注解:
注意项:
@FeignClient(value = "SPRINGCLOUD-PAYMENT-PROVIDER"
) // 要调用的微服务名@Component @FeignClient(value = "SPRINGCLOUD-PAYMENT-PROVIDER") // 要调用的微服务名 public interface OpenFeignPaymentServer { // 对应为服务提供者controller方法 @GetMapping("/payment/get/{id}") public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id); }
-
Controller调用代码
直接注入,然后调用即可
OpenFeign超时控制
OpenFeign调用服务端,默认等待是一秒,超过后会报错
OpenFeign超时控制配置:
OpenFeign默认是支持Ribbon,我们只需要修改配置就行:
ribbon:
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
ReadTimeout: 5000
#指的是建立连接后从服务器读取到可用资源所用的时间
ConnectTimeout: 5000
OpenFeign负载均衡
OpenFeign默认是支持Ribbon的,在使用OpenFeign时我们不需要任何配置,OpenFeign就支持负载均衡功能
OpenFeign日志
OpenFeign日志级别:
OpenFeign日志的开启:
-
配置日志bean
-
配置文件YML需要开启日志的Feign客户端
logging: level: # feign日志以什么级别监控哪个接口 com.fyj.springcloud.service.PaymentFeignService: debug
上一篇: 计算机网络面试题
下一篇: 初十hu测 T2.long(hash)
推荐阅读
-
springcloud干货之服务注册与发现(Eureka)
-
Android 使用【AIDL】调用外部服务的解决方法
-
PHP使用NuSOAP调用Web服务的方法
-
使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)
-
WinForm窗体调用WCF服务窗体卡死问题
-
通过C#调用cmd来修改服务启动类型
-
详解SpringCloud服务认证(JWT)
-
微信小程序调用微信登陆获取openid及java做为服务端示例
-
C#中调用Windows系统服务exe程序的工具类与重启服务的流程
-
SpringCloud之服务注册与发现Spring Cloud Eureka实例代码