DAY3 RPC框架初步认知学习记录 | 青训营
深入浅出RPC框架
RPC(Remote Procedure Calls)远程函数调用--与本地函数调用对立
RPC需要解决的问题:
1.函数映射
2.数据转换成字节流
3.网络传输
RPC概念模型
一次RPC的完整过程:
IDL文件:Interface description language文件,通过一种中立的方式来描述接口,使得不同对象不同语言编写的程序可以相互通信(约定的描述文件)
生成代码:通过编译器工具把IDL文件转换成语言对应的静态库
编解码:从内存表示到字节序列的转换称为编码,反之为解码,也常叫做序列化和反序列化
通信协议:规范了在网络中传输内容和格式。除必须的请求/响应数据外,通常会包含额外的元数据
网络传输:通常基于成熟的网络库走TCP/UDP传输
RPC的好处
1.单一职责,有利于分工协作和运维开发
2.可扩展性强,资源使用率更优
3.故障隔离,服务的整体可靠度更高
RPC的问题
这些问题由RPC框架来处理
分层设计
TLV编码理解
Tag:标签 Length:长度 Value:值,也可以是个TLV结构
协议层
协议解析
网络通信层-Sockets API
! 在业务中一般会用封装好的网络库API.
总结:
1.RPC框架主要核心有三层:编解码层,协议层,网络通信层
2.二进制编解码的实现原理和选型要点
3.协议的一般构造,以及框架协议解析的基本流程
4.网络库的基本架构,以及选型时要考察的核心指标
关键指标
稳定性-保障策略:
1.熔断:保护调用方,防止被调用的服务出行问题而影响整个链路
2.限流:保护被调用方,防止大流量把服务压垮
3.超时控制:避免浪费资源在不可用节点上
出现三种情况暂时不能解决,降级处理
稳定性-请求成功率:
1.负载均衡
2.重试
稳定性-长尾请求
长尾请求概念:
长尾请求一般是指明显高于均值的那部分占比较小的请求。 业界关于延迟有一个常用的P99标准, 也就是99%的请求延迟要满足在一定耗时以内, 1%的请求会大于这个耗时, 而这1%就可以认为是长尾请求。
处理长尾请求:
发送备用请求, 例如对一个后端的数据请求, 本来只需要发送1次, 而我们分别给三个实例发送三次, 最快的一个返回即终止其余的两个请求即可
减小长尾请求延迟造成的影响.
稳定性-注册中间件
通过这种方式加上以上的功能。
易用性
一些生成代码,脚手架工具
扩展性
链式中间件处理
观测性
Log日志,Metric监控,Tracing跟踪
将RPC框架变得可以观测,而不是一个黑盒
还有RPC内置观测服务
高性能
目标:高吞吐and低延迟
多场景的情况不同,要求不同
手段:连接池,多路复用,高性能编解码协议,高性能网络库
总结:
Kitex(字节)
Go的高性能RPC框架,只做了解
微服务过微:
传输和序列化开销越来越大
总结:
今天的课程比较系统得了解了一下关于RPC的内容,主要在RPC框架下面认识了框架的分层设计和使得RPC框架更加成熟的关键指标。
RPC可以大范围节省业务中的资源浪费,能够在当前服务日益增多的情况下在不损失性能的前提下分离各个独立的服务程序。
对于RPC框架和RPC的内容仅仅只是了解,还需要日后的精进学习。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgajhjc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01