Feign的简单引用和介绍

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,节约服务器资源,加快响应速度
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Feign和RestTemplate是Spring Cloud中用于进行远程服务调用的两种不同的方式。 Feign是一个声明式的、基于接口的远程调用工具,它通过注解和动态代理的方式,将服务间的调用变得简单和直观。在使用Feign时,我们只需要定义一个接口,并为该接口添加@FeignClient注解,指定要调用的服务名,Feign会根据接口定义自动生成代理对象,从而实现远程服务的调用。 Feign还支持负载均衡和服务降级等功能,可以通过配置FallbackFactory来处理服务中断或异常时的返回结果。 RestTemplate是Spring提供的一个HTTP客户端工具,它封装了底层的HTTP请求和响应处理逻辑,用于发送RESTful风格的HTTP请求,并处理响应结果。在使用RestTemplate时,我们需要手动编写代码来构建请求并处理响应,通常需要指定请求URL、HTTP方法、请求头和请求体等信息。 RestTemplate可以通过注入LoadBalancerClient对象来实现负载均衡,通过服务名直接获取服务实例的IP地址和端口号。 总结来说,Feign是一个声明式的、基于接口的远程调用工具,它更加简化和直观,适用于微服务架构中的服务间调用。而RestTemplate是一个HTTP客户端工具,需要手动构建请求和处理响应,适用于一般的HTTP接口调用场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [RestTemplate和Feign的区别](https://blog.csdn.net/weixin_41539721/article/details/121916994)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Feign和RestTemplate 的使用比较](https://blog.csdn.net/Gufang617/article/details/120035749)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值