

RPC vs REST - yanliang
source link: https://gyl-coder.top/framework/rpc-rest/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

远程服务调用(Remote Procedure Call,RPC)最初要解决的问题是: 让计算机能够跟调用本地方法一样去调用远程方法。
RPC 要解决的三个基本问题:
- 如何表示数据:这里数据包括了传递给方法的参数,以及方法执行后的返回值。进程内的方法调用,使用程序语言预置的和程序员自定义的数据类型,就很容易解决数据表示问题,远程方法调用则完全可能面临交互双方各自使用不同程序语言的情况;即使只支持一种程序语言的 RPC 协议,在不同硬件指令集、不同操作系统下,同样的数据类型也完全可能有不一样表现细节,譬如数据宽度、字节序的差异等等。有效的做法是交互双方约定一种序列化和反序列化协议,将所涉及的数据转换为某种事先约定好的中立数据流格式来进行传输。每种 RPC 协议都应该要有对应的序列化协议
- 如何传输数据:准确地说,是指如何通过网络,在两个服务的 Endpoint 之间相互操作、交换数据。这里“交换数据”通常指的是应用层协议,实际传输一般是基于标准的 TCP、UDP 等标准的传输层协议来完成的。两个服务交互不是只扔个序列化数据流来表示参数和结果就行的,许多在此之外信息,譬如异常、超时、安全、认证、授权、事务,等等,都可能产生双方需要交换信息的需求。如果要求足够简单,双方都是 HTTP Endpoint,直接使用 HTTP 协议也是可以的
- 如何确定方法:这在本地方法调用中并不是太大的问题,编译器或者解释器会根据语言规范,将调用的方法签名转换为进程空间中子过程入口位置的指针。不过一旦要考虑不同语言,事情又立刻麻烦起来,每门语言的方法签名都可能有所差别,所以“如何表示同一个方法”,“如何找到对应的方法”还是得弄个跨语言的统一的标准才行。
本文采用 署名-非商业性使用-相同方式共享 4.0 国际 许可协议,转载请注明出处。
Recommend
-
11
消费者与消费组消费者(Consumer)负责订阅Kafka中的主题(Topic),并且从订阅的主题上拉取消息。 与其他一些消息中间件不同的是:在Kafka的消费理念中还有一层消费组(Consumer Group)的概念,每个消费者都有一个对应的消费组。当消息发布到...
-
10
数据库优化维度有四个: 表结构设计 SQL语句及索引 优化选择: 优化成本:硬件升级 > 系统配置 > 表结构设计 > SQL语句及索引。 优化效果:硬件升级 < 系统配置 < 表结构设计 < SQL...
-
10
什么是IO学术的说 I/O 是信息处理系统(计算机)与外界(人或信息处理系统)间的通信。如计算机,即 CPU 访问任何寄存器和 Cache 等封装以外的数据资源都可当成 I/O ,包括且不限于内存,磁盘,显卡。 软件开发中的 I/O 则常指磁盘、网...
-
26
yanliang's blog yanliang 人生在勤,不索何获 👉🏼此说说通过📱手机微信发出,主...
-
9
yanliang's blog yanliang 人生在勤,不索何获 Yanliang 🍂 しゃちく 🍀 个人简介...
-
6
yanliang's blog f r i e n d 欢迎和我交换友链~ 各位大佬想交换友链的话可以在下方留言,必须要提供名称、头像和链接哦~请先将本站添加到你滴友链中喔,谢谢~
-
7
Token、Cookie、Session傻傻分不清楚? Cookiecookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。 cookie由服务器生成,发送给浏览器,浏览器把cookie以 kv 形式保...
-
3
从输入 URL 到页面展示到底发生了什么? 首先打开 Google Chrome ,然后在 URL 地址栏中输入了 maps.google.com 查找DNSDNS(Domain Name System) 是一个分布式的数据库,它用于维护网址 URL 到其 IP 地址的映射关系。...
-
44
Building a Serverless RPC API on AWS: REST vs RPC Sep 23, 2021 • Matt TylerTags: rest
-
5
REST与RPC = 面向对象和函数式编程 REST 与 RPC 的争论:
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK