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

远程过程调用RPC | 青训营

武飞扬头像
在凌晨睡着的自己
帮助1

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