rpc协议

五分钟学后端技术:如何学习Java工程师必须要会的RPC

穿精又带淫゛_ 提交于 2020-04-06 05:54:34
声明 本文转自 https://developer.51cto.com/art/201906/597963.htm 什么是RPC RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。 通信框架:MINA 和 Netty。 目前流行的开源 RPC 框架还是比较多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等。 常用的RPC框架 gRPC:是 Google 公布的开源软件,基于最新的 HTTP 2.0 协议,并支持常见的众多编程语言。RPC 框架是基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。 Thrift:是 Facebook 的开源 RPC 框架,主要是一个跨语言的服务开发框架。 用户只要在其之上进行二次开发就行,应用对于底层的 RPC 通讯等都是透明的

RPC框架设计思路

徘徊边缘 提交于 2020-04-05 20:48:29
思路: 注册中心 首先是要有的,推荐使用 Zookeeper 。 注册中心主要用来保存相关的信息比如远程方法的地址 。 既然要要互相调用方法就要 发请求,推荐nio 的 netty框架 。 发请求发送什么数据呢?我们就要考虑 序列化协议 了。 另外, 动态代理 也是需要的。因为 RPC 的主要目的就是让我们调用远程方法像调用本地方法一样简单,使用动态代理屏蔽远程接口调用的细节比如网络传输。 负载均衡 也是需要的。为啥?举个例子我们的系统中的某个服务的访问量特别大,我们将这个服务部署在了多台服务器上,当客户端发起请求的时候,多台服务器都可以处理这个请求。那么,如何正确选择处理该请求的服务器就很关键。假如,你就要一台服务器来处理该服务的请求,那该服务部署在多台服务器的意义就不复存在了。 负载均衡就是为了避免单个服务器响应同一请求,容易造成服务器宕机、崩溃等问题 。 来源: oschina 链接: https://my.oschina.net/u/4167465/blog/3217397

微服务架构之浅析RPC框架?

只谈情不闲聊 提交于 2020-04-05 14:57:04
RPC介绍 先官方的给大家介绍几句 :RPC是远程过程调用(Remote Procedure Call)的缩写形式。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。 名词解释: 远程过程调用 远程过程 ,调用 名词解释: 远程过程 消费者调用后台提供者方法时,后台的执行业务的过程. 定义:分布式系统中系统之间的通信的方式称之为RPC,远程过程调用。无需关注通信具体协议细节.可以利用RPC工具直接获取远程服务器数据。 通熟的讲就是 : 本地调用某个函数方法; 本地机器的RPC框架把这个调用信息 封装 起来(调用的函数、入参等), 序列化 (json、xml等)后,通过网络传输发送给远程服务器; 远程服务器收到调用请求后,远程机器的RPC框架 反序列化获得调用信息 ,并根据调用信息定位到实际要执行的方法,执行完这个方法后,序列化执行结果,通过网络传输把执行结果发送回本地机器; 本地机器的RPC框架反序列化出执行结果,函数 return 这个结果。 服务调用端(本地机器) : 服务提供端(远程机器) : 当然我这还有一种特通俗的讲法 “老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。 “RPC,就是Remote Procedure

五分钟学后端技术:如何学习Java工程师必须要会的RPC

╄→尐↘猪︶ㄣ 提交于 2020-03-30 23:01:00
声明 本文转自https://developer.51cto.com/art/201906/597963.htm 什么是RPC RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。 通信框架:MINA 和 Netty。 目前流行的开源 RPC 框架还是比较多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等。 常用的RPC框架 gRPC:是 Google 公布的开源软件,基于最新的 HTTP 2.0 协议,并支持常见的众多编程语言。RPC 框架是基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。 Thrift:是 Facebook 的开源 RPC 框架,主要是一个跨语言的服务开发框架。 用户只要在其之上进行二次开发就行,应用对于底层的 RPC 通讯等都是透明的

NFS

爷,独闯天下 提交于 2020-03-30 13:42:09
NFS ●NFS 。1. nfs简介 ■1.1 nfs特点 ■1.2使用nfs的好处 ■1.3 nfs的体系组成 ■1.4 nfs的应用场景 。2. nfs工作机制 ■2.1RPC. ■2.2NIS 2.3 nfs工作机制 。3. exports文件的格式 。4. nfs管理 。作业 nfs简介 1.1 nfs特点 ●NFS (Network File System) 即网络文件系统,是FreeBSD支持的文件系统中的一种,它允 许网络中的计算机之间通过TCP/IP网络共享资源 ●在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就 像访问本地文件-样 ●nfs适用于Linux与Unix之 间实现文件共享,不能实现L inux与Windows间的文件共享功能 ●nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上 ●nfs服务只能基于IP进行认证, 这也是它的缺点之一 1.2使用nfs的好处 ●节省本地存储空间,将常用的数据存放在一台NFS服务器 上且可以通过网络访问,那么本地 终端将可以减少自身存储空间的使用 ●用户不需要在网络中的每个机器.上都建有Home目录,Home目录可以放在NFS服务器上且可 以在网络.上被访问使用 ●一些存储设备如软驱、CDROM和Zip (-种高储存密度的磁盘驱动器与磁盘)等都可以在网

RPC原理及实现

旧时模样 提交于 2020-03-30 04:44:12
RPC概述:   RPC(Remote Procedure Call)即远程过程调用,一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 组件:   客户端(Client),服务的调用方。   客户端存根(Client Stub),存放服务端的地址消息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。   服务端(Server),真正的服务提供者。   服务端存根(Server Stub),接收客户端发送过来的消息,将消息解包,并调用本地的方法。 调用过程:   1)服务消费方(client)调用以本地调用方式调用服务;   2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;   3)client stub找到服务地址,并将消息发送到服务端;   4)server stub收到消息后进行解码;   5)server stub根据解码结果调用本地的服务;   6)本地服务执行并将结果返回给server stub;   7)server stub将返回结果打包成消息并发送至消费方;   8)client stub接收到消息,并进行解码;   9)服务消费方得到最终结果。 使用的技术:   动态代理:生成 client stub和server stub需要用到 Java 动态代理技术   序列化

NFS

霸气de小男生 提交于 2020-03-26 23:39:46
1. nfs简介 1.1nfs特点 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样 nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能 nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上 nfs服务只能基于IP进行认证,这也是它的缺点之一 1.2 使用nfs的好处 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量 1.3 nfs的体系组成 nfs体系至少有两个主要部分: 一台nfs服务器 若干台客户机 nfs体系的架构图如下: 客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据 在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数 1.4

NFS

倾然丶 夕夏残阳落幕 提交于 2020-03-26 22:59:02
nfs简介 1.1 nfs特点 龄- ●NFS (Network File System) 即网络文件系统,是FreeBSD支持的文件系统中的- -种, 它允 许网络中的计算机之间通过TCP/IP网络共享资源 ●在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就 像访问本地文件一样 ●nfs适用于Linux与Unix之间实现文件共享,不能实现L inux与Windows间的文件共享功能 ●nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字.上 ●nfs服务只能基于IP进行认证,这也是它的缺点之一 1.2使用nfs的好处 ●节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地 终端将可以减少自身存储空间的使用 ●用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可 以在网络.上被访问使用 ●--些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网 络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量 1.3 nfs的体系组成 nfs体系至少有两个主要部分: ●一台nfs服务器 ●若干台客户机 nfs体系的架构图如下: 1.4 nfs的应用场景 nfs有很多实际应用场景,以下是一些常用的场景:

Netty学习之实战RPC框架

荒凉一梦 提交于 2020-03-26 04:45:08
  先附上GitHub地址: https://github.com/kosamino/netty-root/tree/master/ym-netty-rpc   RPC的实现方式是本地通过远程代理对象调用远程服务。在互联网应用场景中,单体服务极度缺乏弹性伸缩能力,在大规模开发团队中也不便于开发管理。所以往往会把服务根据模块进行垂直拆分,也就是我们说的SOA服务化。服务拆分后系统跟系统直接的业务交互往往依赖于RPC框架进行通讯。   通常RPC的服务端会提供对应的接口jar包, 客户端通过rpc框架功能拿到对应接口的代理实例 ,整个调用过程数据的包装和通讯都是透明的。 一、调用流程   首先先来分析下RPC流程是怎样的,如下图:          我们包含三部分,用户、Netty客户端,Netty服务端: 用户发起调用; Netty客户端包装请求; 客户端对请求进行序列化(对象转ByteBuf); 序列化后发送消息到服务端; 服务端会对请求进行反序列化解码成具体对象; 服务端根据客户端发送的请求解析并准备返回结果; 服务端对返回结果序列化为ByteBuf; 客户端收到返回信息; 客户端对返回信息反列化得到Object信息; 客户端把结果返回给用户调用方,完成整个请求。 二、包含技术   如上所示,就是整个RPC框架的简单流程,在这个流程中需要使用哪些技术呢? 动态代理:通过java

五分钟让你了解RPC原理详解

人盡茶涼 提交于 2020-03-24 01:20:42
RPC 功能目标 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性 。 为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。 下面我们将具体细化 stub 结构的实现。 RPC 调用分类 RPC 调用分以下两种 : 同步调用 客户方等待调用执行完成并返回结果。 异步调用 客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。 若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。 异步和同步的区分在于是否等待服务端执行完成并返回结果。 RPC 结构拆解 如下图所示。 RPC 服务方通过 RpcServer 去导出(export)远程接口方法,而客户方通过 RpcClient 去引入(import)远程接口方法。 客户方像调用本地方法一样去调用远程接口方法,RPC 框架提供接口的代理实现,实际的调用将委托给代理 RpcProxy 。 代理封装调用信息并将调用转交给 RpcInvoker 去实际执行。 在客户端的 RpcInvoker 通过连接器 RpcConnector 去维持与服务端的通道 RpcChannel , 并使用 RpcProtocol 执行协议编码(encode)并将编码后的请求消息通过通道发送给服务方。 RPC 服务端接收器