美文网首页
了解一下RPC,为何诞生RPC,和HTTP有什么不同?

了解一下RPC,为何诞生RPC,和HTTP有什么不同?

作者: 亦一银河 | 来源:发表于2021-01-14 14:56 被阅读0次

    了解一下RPC,为何诞生RPC,和HTTP有什么不同?

    开篇提问

    1. 什么是RPC?

    2. 为什么需要RPC,用来解决什么问题?

    3. RPC与HTTP有什么不同?

    4. 你知道几种RPC?

    认识RPC

    RPC:Remote Procedure Call,远程过程调用。是指计算机程序使过程在不同的地址空间(通常在共享网络的另一台计算机上)执行时,其编码方式就像是正常的(本地)过程调用,而无需程序员明确为远程交互编码细节。

    RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。

    RPC是进程间通信(IPC)的一种形式,因为不同的进程具有不同的地址空间:如果在同一主机上,即使物理地址空间相同,它们也具有不同的虚拟地址空间;如果它们位于不同的主机上,则物理地址空间是不同的。许多不同的(通常是不兼容的)技术已被用来实现这一概念。

    【简单理解】:两台不同计算机(程序),计算机A有一个约定协议计算机B想调用计算机A需要通过约定协议来进行通讯调用。

    image

    RPC的诞生

    其实早在1982年左右RPC就被人用来做分布式系统的通信,最早发明『远程过程调用』这个词语的人是『布鲁斯·杰伊·尼尔森 (Bruce Jay Nelson)』大约是在1981年。

    我们所熟知的Java在1.1版本提供了Java版本的RPC框架(RMI),此时在1990年后,基本上RPC被广泛用于系统之间的调用。但是只在后端方向熟知,对于大众更多的还是接触HTTP等协议,也因此RPC更晚让大众了解认知。

    RPC与HTTP

    先讲讲HTTP

    HTTP:Hypertext Transfer Protocol即超文本传输协议。

    HTTP协议在1990年才开始作为主流协议出现;之所以被我们所熟知,是因为通常HTTP用于web端,也就是web浏览器和web服务器交互。当ajax和json在前端大行其道的时候,json也开始发挥其自身能力,简洁易用的特性让json成为前后端数据传输主流选择。HTTP协议中以Restful规范为代表,其优势很大。它可读性好,且可以得到防火墙的支持、跨语言的支持

    HTTP的缺点也很快暴露:

    1. 有用信息占比少,HTTP在OSI的第七层,包含了大量的HTTP头等信息

    2. 效率低,因为第七层的缘故,中间有很多层传递

    3. HTTP协议调用远程方法复杂,需要封装各种参数名和参数值以及加密通讯等

    所以RPC好在哪?

    1. 都是有用信息

    2. 效率高

    3. 调用简单

    4. 无需关心网络传输或者通讯问题

      HTTP和RPC其实有联系

      http也是rpc实现的一种方式。

      RPC和HTTP一句话说不同

      RPC就像地区方言,只有内部知道,双方都需要知道方言,不然没法沟通

      HTTP就是普通话,基本都能懂,也会说

      RPC一般用于什么地方?

      微服务、分布式已经成为日常的今天,服务通常都部署在不同的服务器,服务器也在不同地区,这时候就存在跨地域跨服务器调用问题,RPC即用于这样类似的情况

      RPC适用于公司内部使用,性能消耗低,传输效率高,服务治理方便,但是不建议传输较大的文本、视频等。

      篇末提问

      1. 是否让你理解HTTP和RPC的一些不同了?

      2. RPC用来干嘛了解了吗?

      3. 你有在用RPC吗?

    相关文章

      网友评论

          本文标题:了解一下RPC,为何诞生RPC,和HTTP有什么不同?

          本文链接:https://www.haomeiwen.com/subject/bajvaktx.html