当前位置:网站首页>[Microservice ~ Remote Call] Integrate RestTemplate, WebClient, Feign
[Microservice ~ Remote Call] Integrate RestTemplate, WebClient, Feign
2022-08-09 13:02:00 【51CTO】
这里是【微服务~远程调用】,关注我学习微服务不迷路
如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位点赞评论收藏️
专栏介绍
【微服务~远程调用】 目前主要更新微服务,一起学习一起进步.
本期介绍
本期主要介绍远程调用整合整合RestTemplate、WebClient、Feign
文章目录
响应式IO模型
API详解
整合Feign
概述
整合Feign
整合RestTemplate
对RestTemplate进行增强,支持负载均衡
通过服务名
调用服务提供者
整合WebClient
WebClient和RestTemplate
- RestTemplate 是 spring 3.0 引入的,底层IO模型是阻塞IO模型 Http客户端.
- WebClient 是 spring 5.0 引入的,作为非阻塞式Reactive Http客户端,用于取代RestTemplate.
响应式IO模型
- SpringMVC或Struct等框架都是基于Servlet的,其底层IO模型是阻塞IO模型.
- Spring社区为了解决SpringMVC的阻塞模型在高并发场景下的性能瓶颈,推出了Spring WebFlux,WebFlux底层实现是久经考验的Netty非阻塞IO通信框架.
- 其实WebClient处理单个HTTP请求的响应时长并不比RestTemplate更快,但是它处理==并发==的能力更强. 所以响应式非阻塞IO模型的核心意义在于,提高了单位时间内有限资源下的服务请求的并发处理能力,而不是缩短了单个服务请求的响应时长.
- 总结:WebClient --> Spring WebFlux --> Netty
WebClient入门
添加 webflux 依赖
编写配置类
编写测试类
测试
API详解
请求方式
方法 | 描述 | 等效 |
build().get() | get请求 | build().method(HttpMethod.GET) |
build().post() | post请求 | build().method(HttpMethod.POST) |
build().put() | put请求 | build().method(HttpMethod.PUT) |
build().delete() | delete请求 | build().method(HttpMethod.DELETE) |
响应类型
类型 | 描述 | 方法 |
Mono | 包含0个或1个元素 | bodyToMono(String.class) |
Flux | 包含1个或多个元素 | .bodyToFlux(String.class) |
整合Feign
概述
- RestTemplate和WebClient都是Spring自己封装的工具
- Feign 是 Spring Cloud 的成员
- Spring Cloud Alibaba 支持对Feign的调用
整合Feign
添加坐标
编写feign
编写测试类
修改启动类
边栏推荐
- web课程设计
- API调用,API传参,面向对接开发,你真的会写接口文档吗?
- Programmer's Exclusive Romance - Use 3D Engine to Realize Fireworks in 5 Minutes
- The latest interview summary in 20022 brought by Ali senior engineer is too fragrant
- MySQL 原理与优化,Group By 优化 技巧
- Django 无法链接mysql数据库
- ABAP 面试题:如何使用 ABAP 编程语言的 System CALL 接口,直接执行 ABAP 服务器所在操作系统的 shell 命令?
- "Digital Economy Panorama White Paper" Special Analysis of Banking Industry Intelligent Marketing Application Released
- 脱光衣服待着就能减肥,当真有这好事?
- 研发需求的验收标准应该怎么写? | 敏捷实践
猜你喜欢
JS封装防抖(代码持续优化)
鹅厂机器狗花式穿越10m梅花桩:前空翻、单桩跳、起身作揖...全程不打一个趔趄...
Blocking, non-blocking, multiplexing, synchronous, asynchronous, BIO, NIO, AIO all in one pot
matlab simulink的scope 示波器光标如何移动记录
【Untitled】
The redis library cannot be imported
JD.com architects tidy up: what are the core technical knowledge points of jvm and performance tuning
Ways to prevent data fraud
2022 Niu Ke Duo School (6) M. Z-Game on grid
GPT-3组合DALL·E,60秒内搞定游戏设定和原型动画!网友看后:这游戏想玩
随机推荐
ACM01 Backpack problem
信息系统项目管理师必背核心考点(六十三)项目组合管理的主要过程&DIPP分析
Simple understanding of ThreadLocal
Blazor Server (9) from scratch -- modify Layout
苹果Meta都在冲的Pancake技术,中国VR团队YVR竟抢先交出产品答卷
专业人士使用的 11 种渗透测试工具
【面试高频题】可逐步优化的链表高频题
Batch大小不一定是2的n次幂!ML资深学者最新结论
API调用,API传参,面向对接开发,你真的会写接口文档吗?
研发需求的验收标准应该怎么写? | 敏捷实践
TIC2000调用API函数Flash擦除片上FLASH失败
LeetCode热题(11.合并两个有序链表)
又有大厂员工连续加班倒下/ 百度搜狗取消快照/ 马斯克生父不为他骄傲...今日更多新鲜事在此...
Shell之常用小工具(sort、uniq、tr、cut)
mysql + redis + flask + flask-sqlalchemy + flask-session 配置及项目打包移植部署
国产抗新冠口服药每瓶不超300元/ 我国IPv6网络全面建成/ 谷歌入局折叠屏手机...今日更多新鲜事在此...
字节秋招二面把我干懵了,问我SYN报文什么情况下会被丢弃?
1小时直播招募令:行业大咖干货分享,企业报名开启丨量子位·视点
鹅厂机器狗花式穿越10m梅花桩:前空翻、单桩跳、起身作揖...全程不打一个趔趄...
索引index