Feign的简单引用和介绍

Feign是Spring Cloud中用于服务间调用的客户端,它提供了声明式的HTTP客户端接口,使得调用远程服务如同调用本地方法一样简单。通过引入依赖、启用注解、定义Feign接口,可以轻松实现服务间的通信。默认超时时间为1秒。此外,Feign支持自定义拦截器,可以统一处理请求。其工作原理基于动态代理,可以选择不同的HTTP客户端如HttpClient或OkHttp。

Feign在项目中的作用是什么?

在调用其它服务的接口时可以使用,作用和spring的restTemplate相同。

调用外部的接口会更加的简单,代码也会非常规整

 

如何使用feign

1)引入openfeign依赖

<dependency>
   <groupId>
org.springframework.cloud</groupId>
   <artifactId>
spring-cloud-starter-openfeign</artifactId>
</dependency>

2)在启动类上@EnableFeignClients注解,开启feign客户端

@EnableFeignClients

@SpringBootApplication

public class App {

   public static void main(String[] args) {

      SpringApplication.run(App.class, args);

   }

}

3)定义一个FeignClient客户端,其实就是定义个一个接口,加上@feignClient注解

Value处写上需要调用的服务的spring.application.name, configuration可以引入自定义的配置类,接口上添加@GetMapping或者@PostMapping ,加上应用controller层的url

@FeignClient(value="eureka-client-user-service", configuration=FeignConfiguration.class)

public interface UserRemoteClient {



   @GetMapping("/user/hello") 

   String hello();

   

}

4)Feign如果不设置响应超时时间的话,默认值是什么?

默认的readoutoftime是1秒,connectOutOfTime是1秒

5)Feign继承特性

创建3个项目:

Api:定义接口项目,被api的提供者和使用者所依赖,通过pom文件的形式

Api-provider:依赖api项目,在controller层实现api的接口

Api-consumer:依赖api项目,通过使用api的client接口的方式实现远程调用

特点:

简单,清晰

6)可以添加自定义拦截器,统一对请求进行加工处理

Feign的原理

  1. 使用Proxy.newProxyInstance生成动态代理
  2. 默认使用的HttpURLConnection对外发出请求,可以转成使用HttpClient或者是OKHttp, 后两者使用了连接池,减少创建连接的cpu消耗,便于管理对外的连接数。OKHttp采用共享的socket,节约服务器资源,加快响应速度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值