热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于rpc:RPC基础概念问答

上面的两张原理图是一样的。从第一张原理图中能够看到rpc传输过程中应用的传输协定,从第二张原理图中sockets是在Kernel中,也就是在操作系统的内核中。

RPC 原理图

上面的两张原理图是一样的。从第一张原理图中能够看到 rpc 传输过程中应用的传输协定,从第二张原理图中 sockets 是在 Kernel 中,也就是在操作系统的内核中。

什么是RPC??

近程过程调用。一个服务器应用另一台服务器上的提供的服务或办法。

RPC 解决的什么问题??

让分布式或微服务零碎中不同服务之间的调用像本地调用一样简略。

为什么要应用 RPC??

因为两个服务器不是同一个操作系统,也不在一个内存空间,所以不能间接调用,须要通过网络来传递数据。

RPC 怎么解决通信??

在客户端和服务器之间建设 TCP 连贯,rpc 所有传输的数据都在 TCP 连贯中传输。连贯能够是按需连贯,调用完结后就断开,也能够是和长连贯,多个rpc 共享同一个连贯。

因为客户端和服务器是通过网络进行传输的,所以须要一个传输层,把函数id和序列化后的参数传递给服务器,并把序列化后的调用后果传回客户端。所以 TCP(大部分框架应用)和UDP都能够,也能够应用 http2(grpc应用)

RPC 怎么解决寻址的问题??

客户端上的利用通知 rpc 框架,服务器的主机/IP地址、端口号、办法名称,这样就能够实现调用。

网络协议是基于二进制的,内存中的参数的值须要序列化成二进制的模式。

服务器收到申请后,要对参数进行反序列化,把二进制变成内存中的参数,把参数复原成内存中的表达方式,而后找到对应的办法(寻址的一部分),进行本地调用,失去返回值。

服务器将返回值(序列化后)发给客户端,客户端收到返回值后,进行反序列化,而后传递给它下面的利用。

java的序列化形式:json。

RPC 和 socket 的区别??

socket是两个主机不同过程之间进行通信的形式。

rpc 是建设在 socket 之上的。rpc 通过 socket 实现通信, 也能够不必 socket,而应用其余的通信形式,比方命名管道(windows零碎中)。

RPC 和 HTTP 的分割和区别??

http 协定是应用层的协定。http 是实现 rpc 的一种形式。能够应用 http 协定,也能够应用 TCP / UDP 协定。


推荐阅读
  • 阿里首席架构师科普RPC框架
    RPC概念及分类RPC全称为RemoteProcedureCall,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程 ... [详细]
  • 原文地址:http:dogdogcom.blog.51cto.com2402458490398tcpdump-a将网络地址和广播地址转变成名字;-d将匹配信息包的代码以人们可以理解 ... [详细]
  • 分布式服务框架和原理简章
    应用架构演进这里的架构演进应该是从服务化的角度来说,应该说随着业务发展,应用规模扩大,系统的一些公共服务就会抽取出来,独立开发,部署,维护,用来解决并发,扩展,维护的问题。传统垂直 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • SOA架构理解理解SOA架构,了解ESB概念,明白SOA与微服务的区别和联系,了解SOA与热门技术的结合与应用。1、面向服务的架构SOASOA(ServiceOrien ... [详细]
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
  • 实例详解ISA防火墙策略元素
    我们在前面的工作中已经实现了ISA2006的代理服务器功能,接下来我们要实现ISA的访问控制功能。很多公司都有控制员工访问外网的需求,例如有的公司不允许 ... [详细]
  • windows平台使用NSP拦截具体进程的域名解析过程(xFsRedir的代理功能之域名代理)
    byfanxiushu2022-10-17转载或引用请注明原始作者。xFsRedir软件其中之一的功能就是实现了全方位的网络代理,从主机代理,到本地代理 ... [详细]
  • 本文为转载,原连接:https:www.zhihu.comquestion40822826简单说一下吧做要解释这些要从netconf说起。netconf ... [详细]
  • 小白轻松使用axis2构建webservice
    引言:使用axis2是来实现webservice接口是比较常见的,就我来说,如果要学一个首次接触东西,简单了解相关基础概念 ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
author-avatar
mjadhu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有