RPC | 青训营笔记

106 阅读2分钟

RPC简介

RPC

RPC(Remote Procedure Call)是一种远程过程调用的协议,用于不同计算机或进程之间进行通信和交互。它允许一个计算机程序通过网络请求调用另一个计算机程序中的函数或方法,就像调用本地函数一样。RPC可以隐藏底层网络细节,使得远程调用的过程对开发者透明化。通过RPC,程序可以实现分布式计算、微服务架构、跨语言通信等功能。常见的RPC框架包括 gRPC、Apache Thrift、JSON-RPC 等。

RPC完成过程

1.定义接口:通常使用接口描述语言(IDL)来定义接口。
2.生成代码:使用IDL工具生成客户端和服务器端的代码。
3.客户端调用。
4.网络传输。
5.服务器接收。
6.服务器处理。
7.服务器响应。
8.客户端接收。
9.客户端处理。

整个过程中涉及到数据的序列化、网络传输和反序列化等步骤,以实现客户端与服务器之间的远程调用和通信。RPC提供了一种方便、高效、透明的方式来实现分布式系统中的进程间通信。

RPC优势以及带来的问题

优势:简化分布式系统开发、提高开发效率、支持跨语言通信等。
问题:依赖网络稳定性,出现网络异常、通信延迟以及安全性和身份认证等问题。

RPC关键指标

1.稳定性
通过熔断、限流、超时控制等方法保护调用方和被调用方,同时避免资源浪费和注意负载均衡问题。
2.易用性
将功能进行打包,实现一键配置基础依赖。
3.扩展性
4.观测性
5.高性能
运用连接池、多路复用、高性能网络库等技术手段实现高吞吐、低延迟。

Summary

这里抛出一个问题,有HTTP协议,为什么还需要RPC呢?
HTTP在HTTP1.0的基础上做了很多优化,出现HTTP2.0和HTTP3.0,相对RPC已经有较好的性能,需要我们继续深入了解和学习!