RPC调用方式(远程过程调用)

RPC是一种调用方式,而gRPC是基于RPC的应用层协议,可使用TCP或UDP。应用层协议如HTTP和gRPC解决字节流分包问题,定义消息边界。RPC通过连接池优化性能,常采用protobuf进行序列化,而HTTP使用JSON,更适用于B/S架构。服务发现方面,HTTP依赖DNS,RPC则通过中间服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. RPC不是一种协议,更像是一种调用方式。而基于RPC这种调用方式的具体实现,例如gRPC才是一种应用层协议。其底层既可以用TCP也可以用UDP来实现

  2. 为什么要有应用层协议(HTTP、gRPC协议)?

    1. 裸TCP协议,TCP的三大特性(面向连接、可靠、基于字节流)。其实裸TCP协议已经可以传递字节流,但是会产生粘包的问题。因此引入了应用层的协议来实现分包(定义每个包的起始点和终止点)。总结:上层需要定义消息格式用于定义消息边界
  3. RPC解决了什么问题?

    1. 实现了本地可以直接调用远程的方法函数
  4. HTTP和RPC的发展历史:

    1. 在TCP推出后,先是有了RPC,然后再由HTTP协议
  5. HTTP和RPC的区别:

    1. RPC采用了连接池技术,使用后的RPC连接会放到连接池中下次使用(同样是基于长连接)。HTTP/1.1基于长连接,由于连接池有利于提升网络请求性能,所以不少编程语言的网络库里都会给 HTTP 加个连接池

    2. 技术实现方面:早期RPC多用于C/S架构,主要用于公司内部。HTTP多用于B/S架构,是一个统一的标准

    3. 序列化方面(传输内容):RPC定制化程度更高,采用了更加方便简单的序列化方式protobuf,而HTTP采用了json序列化方式,json更加繁琐

    4. 服务发现方式:应用层协议在建立连接的过程中要知道IP和端口号。HTTP采用了DNS的方式获取端口号,PRC采用了中间服务的方式

      请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值