远程过程调用RPC | 青训营
1. RPC调用需要解决的问题:
(1)函数映射:将远程调用的函数与本地函数建立映射关系
(2)数据序列化:将数据转换成字节流,以便在网络上传输
(3)网络传输:在网络中传输序列化的数据
2. 基本概念:
(1)IDL文件:接口定义语言文件,约定了接口规范,使得不同平台和不同语言的程序能够相互通信
(2)编码与解码:也称为序列化与反序列化,将内存中的数据转换为字节序列的过程称为编码
(3)生成代码:通过编译器工具将IDL文件转换成语言对应的静态库
2. 优点:
(1)单一职责:有利于分工协作和开发维护
(2)可扩展性强:资源利用率更优
(3)故障隔离:服务的整体可靠性更强
2. 可能遇到的问题:
(1)服务宕机:远程调用的服务停止运行
(2)网络异常:调用过程中发生网络异常,导致消息无法传递
(3)请求量突增:导致服务无法及时处理
2. RPC框架分层设计(以Apache Thrift为例):
(1) 编解码层:使用代码生成工具将IDL文件转换为不同语言的代码。
- 选择标准:兼容性、通用性、性能。
(2) 协议层:定义数据传输格式,负责序列化和反序列化数据,如JSON、二进制等。
- 每个协议单元以特殊字符"/r/n"作为结束标识。
- 变长协议:由不定长和定长组成。
(3) 网络通信层:使用Sockets API进行网络通信。
6. 关键指标:
(1) 稳定性:
- 熔断:保护调用方,防止调用的服务出现问题影响整个调用链。
- 限流:保护被调用方,防止大量请求超过其处理能力。
- 超时控制:避免资源浪费在不可用的节点上。
(2) 性能:
- 负载均衡
- 重试
- 处理长尾请求(响应耗时较久的请求):提高成功率,设置时间阈值进行重试。
(3) 易用性:
- 开箱即用:合理的默认参数选项和详尽的文档。
- 相关工具:代码生成工具、脚手架工具。
(4) 扩展性:
- 中间件:增加可插拔的中间件来扩展RPC框架的功能。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbcbac
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01