JAVA 项目中接口调用怎么做 ?

  • Httpclient
  • Okhttp
  • Httpurlconnection
  • RestTemplate

上面是最常见的几种用法,我们今天要介绍的用法比上面的更简单,方便,它就是Feign

Feign是一个声明式的REST客户端,它的目的就是让REST调用更加简单。

Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息。

而Feign则会完全代理HTTP请求,我们只需要像调用方法一样调用它就可以完成服务请求及相关处理。

SpringCloud对Feign进行了封装,使其支持SpringMVC标准注解和HttpMessageConverters。

Feign可以与Eureka和Ribbon组合使用以支持负载均衡。

区别:

在预订微服务中,有一个同步呼叫票价(Fare)。RestTemplate是用来制作的同步呼叫。使用RestTemplate时,URL参数是以编程方式构造的,数据被发送到其他服务。在更复杂的情况下,我们将不得不RestTemplate深入到更低级别的API提供的甚至是API 的细节。

Feign是Spring Cloud Netflix库,用于在基于REST的服务调用上提供更高级别的抽象。Spring Cloud Feign在声明性原则上工作。使用Feign时,我们在客户端编写声明式REST服务接口,并使用这些接口来编写客户端程序。开发人员不用担心这个接口的实现。这将在运行时由Spring动态配置。通过这种声明性的方法,开发人员不需要深入了解由HTTP提供的HTTP级别API的细节的RestTemplate

总结:

也就是说FeignClient简化了请求的编写,且通过动态负载进行选择要使用哪个服务进行消费,而这一切都由Spring动态配置实现,我们不用关心这些,只管使用方法即可。再说,就是简化了编写,RestTemplate还需要写上服务器IP这些信息等等,而FeignClient则不用。

FeignClient与RestTemplate的区别相关推荐

  1. SpringCloud接入EDAS——服务发现篇

    旁白 很久没有写技术文章了,最近不是写水文就是写小说.说到底,还是最近很少研究技术的缘故,已经到了江郎才尽的地步了. 不过,LZ无意间看到自己团队的小伙伴写的一些文章,觉得还是不错的,于是便动了心思, ...

  2. 117道Java面试题及答案(大多都是项目里面所用到的技术点)

    1 SpringBoot整合SpringMVC的jar包的名字: spring-boot-starter-web 2 SpringBoot整合Durid连接池的jar包的名字: Durid-sprin ...

  3. Java学习之路(基础到高级200讲)

    (由于合同未续,视频课程已被下线,可到另一个平台观看对应的视频教程) https://www.yingyinyi.com/site/view/57171.html 对应博客有300余篇基础到高级的文章 ...

  4. 微服务之间的调用方式RestTemplate和FeignClient

    SpringCloud服务间的调用有两种方式:RestTemplate和FeignClient.不管是什么方式,他都是通过REST接口调用服务的http接口,参数和结果默认都是通过jackson序列化 ...

  5. 使用RestTemplate进行feignclient调用(附源码)

    使用RestTemplate进行feignclient调用(附源码) 问题背景 项目搭建 项目测试 心得 Lyric: 有一条热昏头的响尾蛇 问题背景 feignclient的本质其实也是http调用 ...

  6. Ribbon、Feign、OpenFeign、spring-cloud-openfeign的区别

    一. Ribbon 随着服务注册中心的安装完成后,客户端的负载均衡和服务的调用又是我们关注的话题.Ribbon可以实现客户端的负载均衡, 负载均衡LB LoadBalance(负载均衡):简单的说就是 ...

  7. springCloud负载均衡Ribbon和Feign的区别

    1.什么是负载均衡: 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据[均匀]分摊到多个操作单元上执行,负载均衡的关键在于[均匀]. 2.常见的负 ...

  8. SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用

    什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...

  9. Dubboamp;hsfamp;Spring-cloud的区别

    Dubbo: 简介:Dubbo是一个分布式服务框架,以及SOA治理方案.其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等. 底部NIO基于netty ...

最新文章

  1. boost::hana::members用法的测试程序
  2. clamav程序的研究总结
  3. ArcMap 导入 wrl_flmic拍摄的素材如何无损导入电脑
  4. lightoj 1044 - Palindrome Partitioning(需要优化的区间dp)
  5. SecureCRT连接linux时主机名,secureCRT连接linux方法
  6. 一步步编写操作系统 51 加载内核4
  7. java语言设计论文_(C)论文(JAVA语言考试系统的设计与实现)
  8. Mac上使用中文Beamer添加各种格式的图片
  9. 苹果输了,赔了高通 2 个亿
  10. gitlab权限分配
  11. vscode远端编程 终极方案
  12. android app 缓存目录在哪里找,Android App的文件缓存目录
  13. Android 打电话实现两种方法
  14. hypermesh分析流程
  15. 计算机管理关机在哪,电脑定时开关机在哪里设置
  16. 计算机专业性价比高的学校 考研,计算机专业考研,该怎样选择院校?这五所大学性价比很高...
  17. 聚乳酸改性乳清白蛋白/肌白蛋白/豆清白蛋白/蓖麻蛋白/豌豆白蛋白1b ( PA1b)|蛋白偶联修饰
  18. R假设检验之Bartlett球形检验(Bartlett’s Test of Sphericity)
  19. Exchange 2010 (五) 批量新增邮箱
  20. Kaiming He 何恺明 http://kaiminghe.com/

热门文章

  1. Tiktok培训可以去学习吗?
  2. c++list遍历_小白学PyTorch | 6 模型的构建访问遍历存储(附代码)
  3. javascript基础-ajax
  4. IDEA搭建Maven Web(SSM)项目(二)——jar包引入、jetty服务器配置和ssm配置
  5. java poi读取word中附件_java用poi实现对word读取和修改操作
  6. java对字符串快查找_字符串快速查找 - Trie算法
  7. MySQL单表删除重复列SQL语句
  8. [Ext JS] 组件浮动一篇通(floating、alignTo)
  9. [dhtmlx]group task 失效问题解决
  10. php 获得焦点,jquery中blur()失去焦点与focus() 获取焦点事件