RPC框架是啥?

栏目: 服务器 · 发布时间: 4年前

内容简介:本博客在我刚刚了解分布式的时候,经常对RPC和分布式有些混淆,甚至一直以为两者对等,所以我们先看看他们有什么RPC实现了服务消费调用方Client与服务提供实现方Server之间的

本博客 猫叔的博客 ,转载请申明出处

在我刚刚了解分布式的时候,经常对RPC和分布式有些混淆,甚至一直以为两者对等,所以我们先看看他们有什么 区别

RPC实现了服务消费调用方Client与服务提供实现方Server之间的 点对点调用流程 ,即包括了stub、通信、数据的序列化/反序列化。且Client与Server一般采用 直连 的调用方式。

而分布式服务框架,除了包括 RPC的特性 ,还包括多台Server提供服务的负载均衡、策略及实现,服务的注册、发布与引入,以及服务的高可用策略、服务治理等等。

那么RPC是什么呢?

百度百科是这样表示的:

RPC(Remote Procedure Call)— 远程过程调用 ,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

它甚至给出了 工作原理 ,这一点很惊喜。

RPC框架是啥?

  • 1.调用客户端句柄;执行传送参数
  • 2.调用本地系统内核发送网络消息
  • 3.消息传送到远程主机
  • 4.服务器句柄得到消息并取得参数
  • 5.执行远程过程
  • 6.执行的过程将结果返回服务器句柄
  • 7.服务器句柄返回结果,调用远程系统内核
  • 8.消息传回本地主机
  • 9.客户句柄由内核接收消息
  • 10.客户接收句柄返回的数据

我喜欢搜查更多的信息资料,所以我又找到了 知乎 上的回答。

RPC框架是啥?

知乎 1.7k 的点赞,应该还是可以参考的。

恰如回答提到的,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。

至于 为什么使用RPC ?答主也提到,无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求,比如不同系统间的通讯,甚至不同组织间的通讯。

这里再说一下关于Netty,Netty框架不局限于RPC,更多的是作为 一种网络协议的实现框架 ,比如HTTP,由于RPC需要高效的网络通信,就可以选择Netty作为基础。除了网络通信,RPC还需要有高效的序列化框架,以及一种寻址方式,如果是带会话(状态)的RPC调用,还需要有会话的状态保持的功能。

好了,让我们再来整理一下, 什么是RPC

RPC(远程过程调用)一般用来 实现 部署在不同机器上的系统之间的 方法调用 ,使得程序能够像访问本地系统资源一样,通过 网络传输 去访问远端系统资源。一般来说,RPC框架实现的 架构原理 都是类似的。

RPC框架是啥?

可以这样说,

  • 客户端调用:负责发起RPC调用,为调用方用户提供使用API。
  • 服务端响应:主要是服务端业务逻辑实现。
  • 序列化/反序列化:负责对RPC调用通过 网络传输的内容进行序列化与反序列化 ,不同的RPC框架有不同的实现机制。一般分为 文本(XML、JSON)与二进制(Java原生的、Hessian、protobuf、Thrift、Avro、Kryo、MessagePack) ,需要注意的是,不同的序列化方式在可读性、码流大小、支持的数据类型及性能等方面都存在较大差异,我们可以根据需要自行选择。
  • Stub:我们看成代理对象,它会屏蔽RPC调用过程中的复杂的 网络处理逻辑 ,使其透明简单,且能够保持与本地调用一样的代码风格。
  • 通信传输:即RPC的底层通信传输模块,一般通过Socket在客户端与服务端之间 传递请求与应答消息

公众号:Java猫说

学习交流群:728698035

现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。

RPC框架是啥?


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

释放潜能:平台型组织的进化路线图

释放潜能:平台型组织的进化路线图

穆胜 / 人民邮电出版社 / 2017-12 / 59.80元

传统的组织模式中,企业逃不出“员工动不起来”和“创新乏力”的宿命。互联网改变商业逻辑的同时也改变了组织逻辑。平台型组织是匹配互联网商业逻辑的组织模式,它赋予了基层员工更多的责权利,能够在需求侧灵敏获取用户刚需、在供给侧灵活整合各类资源、用“分好钱”的机制激活个体去整合各类资源满足用户刚需,形 成供需之间的高效连接。 打造平台型组织有两大主题:一是通过设计精巧的激励机制让每个人都能感受到市场的压力,......一起来看看 《释放潜能:平台型组织的进化路线图》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码