RPC连接原理

本文介绍了RPC连接的基本原理和核心要点,包括序列化、通信协议和接口描述语言。深入探讨了HTTP/2的二进制帧、首部压缩、服务端推送和主动重置连接等特性。接着,详细阐述了gRPC中的多路复用,如连接并发、Recv-Q和Send-Q的概念,以及通道重用的重要性。通过对HTTP/2特性的分析,强调了gRPC如何利用HTTP/2提高连接效率和并发性能。
摘要由CSDN通过智能技术生成

一. RPC连接原理

1. 基本的RPC模型
  • RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务
2. 最核心的几个要点
  • RPC 框架中最核心的几个要点:
  1. 序列化
  2. 通信协议
  3. IDL(接口描述语言)

这些在 gRPC 中分别对应的是:

  1. 基于 Protocol Buffer 序列化协议,性能高效。
  2. 基于 HTTP/2 标准协议开发,自带 stream 、多路复用等特性;同时由于是标准协议,第三方工具的兼容性会更好(比如负载均衡、监控等)
  3. 编写一份 .proto 接口文件,便可生成常用语言代码。

在这里插入图片描述

二. GPC简介

HTTP/2,也就是超文本传输协议第2版,不论是1还是2,HTTP的基本语义是不变的,比如方法语义(GET/PUST/PUT/DELETE),状态码(200/404/500等),Range Request,Cacheing,Authentication、URL路径, 不同的主要是下面几点:

1. HTTP2.0 特性
1.1 二进制帧

HTTP/2 传输的数据是二进制的。相比 HTTP/1.1 的纯文本数据,二进制数据一个显而易见的好处是:更小的传输体积。这就意味着更低的负载。二进制的帧也更易于解析而且不易出错,纯文本帧在解析的时候还要考虑处理空格、大小写、空行和换行等问题,而二进制帧就不存在这个问题。
在这里插入图片描述

1.2 首部压缩

HTTP是无状态协议。简而言之,这意味着每个请求必须要携带服务器需要的所有细节,而不是让服务器保存住之前请求的元数据。因为http2没有改变这个范式,所以它也需要这样(携带所有细节),因此 HTTP 请求的头部需要包含用于标识身份的数据比如 cookies,而这些数据的量也在随着时间增长。每一个请求的头部都包含这些大量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爽朗地狮子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值