• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

DAY3 RPC框架初步认知学习记录 | 青训营

武飞扬头像
虚飘QAQ
帮助1

深入浅出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
系列文章
更多 icon
同类精品
更多 icon
继续加载