RPC(3)

什么是RPC

RPC(Remote Procedure Call)是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器)的过程或函数,而不是程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同

PRC基本原理

RPC基本原理图

举个例子

A服务器上有段代码

hello(){
  String msg = b.hi(new User("Tom"));
  System.out.println(msg);
}

另一台B服务器上有段代码

String hi(User user){
  return "hi : " + user.getName();
}

A服务器方法调用B服务器方法的过程

A服务器方法调用B服务器方法,然后由A打印出B方法的返回值,A方法相当于Client,客户端发起调用请求,Client Sub在A服务器发现A要调用的方法在另一台服务器B,将A服务器和B服务器建立连接,并将传递的参数对象进行序列化,将内容发送给B服务器的 Server Sub,将序列化的内容反序列化,并调用对应的方法,拿到调用方法产生的返回值,将返回结果序列化传递A服务器,A收到后反序列化并展示调用结果

决定RPC性能是:序列化与反序列化效率、通讯效率(各个服务器之间建立连接)

序列化之间传递的数据不同类型之间的速度二进制流优于JSON优于XML;

PRC框架

dubbo、gRPC、Thrift、HSF

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springboot 2.0 + Redis

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件

    桑鱼
  • idea使用Dubbo创建提供者消费者(7)

    订单服务web模块一般指的是对外HTTP服务,用户服务service模块一般指的是对外提供RPC服务

    桑鱼
  • 稀疏数组

    当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。

    桑鱼
  • 前端-团队效率(二)代码规范

    // "javascript.suggest.autoImports": true,

    吴文周
  • 网站建设步骤及常用建站系统分享

    现在很多朋友对于网站建设的概念和步骤都很模糊,下面小熊优化的小编给大家详细讲解一下,网站建设主要分下面几个步骤

    用户4831957
  • 微服务统一认证与授权的 Go 语言实现(上)

    最近疫情严重,是一个特殊时期,大家一定要注意防护。很多省份推迟了企业开工的时间,大部分的互联网公司也都是下周开始远程办公。大家可以利用在家的几天时间学习充电,反...

    aoho求索
  • OAuth 2.0初学者指南

    本文概述了OAuth 2.0协议。它讨论了OAuth 2.0实现过程中涉及的不同参与者和步骤。

    银河1号
  • 深入理解RPC之序列化篇--Kryo

    一年前,笔者刚刚接触RPC框架,从单体式应用向分布式应用的变革无疑是让人兴奋的,同时也对RPC背后到底做了哪些工作产生了兴趣,但其底层的设计对新手而言并不是很...

    kirito-moe
  • 大型网站图片服务器架构的演进

    作者:丁浪,非著名架构师。关注高并发、高可用的架构设计,对系统服务化、分库分表、性能调优等方面有深入研究和丰富实践经验。热衷于技术研究和分享。 声明:版权归丁浪...

    架构师小秘圈
  • 「服务器」Oauth2验证框架之项目实现

    Oauth2.0是一个很通用的验证框架,很多编程语言都对其进行了实现,包括Java、PHP、Python、NodeJS、Ruby、NET、Erlang、Go、C...

    ZhangXianSheng

扫码关注云+社区

领取腾讯云代金券