远程过程调用协议

go RPC 远程调用

喜你入骨 提交于 2019-11-28 13:21:59
Go语言 中 RPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络细节的应用程序通信协议。RPC 协议构建于 TCP 或 UDP ,或者是 HTTP 之上,允许开发者直接调用另一台计算机上的程序,而开发者无需额外地为这个调用过程编写网络通信相关代码,使得开发包括网络分布式程序在内的应用程序更加容易。 RPC 采用客户端—服务器(Client/Server)的工作模式。请求程序就是一个客户端(Client),而服务提供程序就是一个服务器(Server)。当执行一个远程过程调用时,客户端程序首先发送一个带有参数的调用信息到服务端,然后等待服务端响应。 在服务端,服务进程保持睡眠状态直到客户端的调用信息到达为止。当一个调用信息到达时,服务端获得进程参数,计算出结果,并向客户端发送应答信息,然后等待下一个调用。最后,客户端接收来自服务端的应答信息,获得进程结果,然后调用执行并继续进行。 在 Go 中,标准库提供的 net/rpc 包实现了 RPC 协议需要的相关细节,开发者可以很方便地使用该包编写 RPC 的服务端和客户端程序,这使得用 Go语言开发的多个进程之间的通信变得非常简单。 net/rpc 包允许 RPC 客户端程序通过网络或是其他 I/O 连接调用一个远端对象的公开方法(必须是大写字母开头、可外部调用的

XML-RPC-2RPC

青春壹個敷衍的年華 提交于 2019-11-28 07:44:45
远程过程调用协议 RPC一般指远程过程调用协议 RPC(Remote Procedure Call)— 远程过程调用 ,它是一种通过 网络 从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 RPC协议 假定某些 传输协议 的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI 网络通信 模型中,RPC跨越了 传输层 和 应用层 。RPC使得开发包括网络 分布式 多程序在内的应用程序更加容易。 RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复 信息 ,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。 有多种 RPC模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本,使得 ONC RPC 协议成为 IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算 环境 (DCE)。 中文名 远程过程调用 外文名 Remote Procedure Call 核心思想 信息传输协议 研究方向 分布式 目录 1 工作原理 2 协议结构 工作原理 编辑 运行时

.NET World——gPRC概览

会有一股神秘感。 提交于 2019-11-27 19:24:30
什么是gRPC 官方 的定义: gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services. gRPC是一种现代化开源的高性能RPC框架,能够运行于任意环境之中。它可以高效地在服务和数据中心内部与其间建立连接,并且可支持负载均衡,追踪,健康检测与认证功能。同时它也可用于分布式计算的“最后一公里”,连接设备,移动应用和浏览器到后端服务。 维基 的定义: gRPC (gRPC Remote Procedure Calls) is an open source remote procedure call

面向服务架构之RPC原理与实例

僤鯓⒐⒋嵵緔 提交于 2019-11-27 12:57:50
1、RPC概述   RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。主要是为了应对当前互联网项目量级越来越大而出现的。 2、Broker模式介绍    3、RPC结构拆解    4、RPC客户端组件与职责   -RpcClient:负责导入远程接口的代理实现   -RpcProxy:远程接口的代理实现   -RpcInvoker:负责编码和发送调用请求到服务方并等待结果   -RpcProtocol:负责协议的编/解码   -RpcConnector:负责维护客户/服务方连接通道和发送数据到服务方   -RpcChannel:数据传输通道 5、RPC服务端组件与职责   -RpcServer:负责导出远程接口   -RpcInvoker:负责调用服务端接口的具体实现并返回结果   -RpcProtocol:负责协议的编/解码   -RpcAcceptor:负责接收客户方请求并返回请求结果   -RpcProcessor:负责在服务方控制调用过程,包括线程池、超时等   -RpcChannel:数据传输通道 6、RPC导出/导入远程接口 7、RPC数据传输   -传输协议:建议选择稳定性较强的连接协议(HTTP、TCP),像UDP就不建议选择   -连接:长连接、短连接

web service

北战南征 提交于 2019-11-27 10:49:55
[原]Web Service学习 一、 Web Service 简介 1.1 、 Web Service 基本概念 Web Service 也叫 XML Web Service WebService 是一种可以接收从 Internet 或者 Intranet 上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是 : 通过 SOAP 在 Web 上提供的软件服务,使用 WSDL 文件进行说明,并通过 UDDI 进行注册。 XML : ( Extensible Markup Language ) 扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是 Soap 的基础。 Soap : (Simple Object Access Protocol) 简单对象存取协议。是 XML Web Service 的通信协议。当用户通过 UDDI 找到你的 WSDL 描述文档后,他通过可以 SOAP 调用你建立的 Web 服务中的一个或多个操作。 SOAP 是 XML 文档形式的调用方法的规范,它可以支持不同的底层接口,像 HTTP(S) 或者 SMTP 。 WSDL : (Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。 UDDI

Dubbo源码分析系列之-整体架构设计

倖福魔咒の 提交于 2019-11-27 05:42:49
导语:   在了解一个框架的源码的时候,第一步要了解的就是源码的结构,接下来第二步需要了解的就是源码的架构,下面这张图在Dubbo官网上所展示的Dubbo的架构设计图。接下来就来详细的分析一下这张图。 整体说明   从左右颜色的角度分析,浅蓝色的表示Consumer也就是服务消费者,浅绿色的表示Provider也就是服务提供者,这个是左右分离的越往两边说明对于服务提供者和服务消费者的调用越强烈,而越往中间则表示都需要进行调用。   上面已经看过了从左右颜色的角度上分析,接下来就来分析一下上下结构,从上到下分别分为了十层(从图中可以看出),最左边有每一层的标注,而在最右边的黑色实线箭头表示的各个层级之间的依赖关系。从整个上下结构来看每一个层级都可以被单独的进行扩展。   从整体的颜色分布可以看出蓝色的表示实现类,而绿色的表示接口,这个图中所显示的就是在各个层级中关联的类或者接口。对于每个层级中的详细实现的其他类并没有展示。图中的有实线和虚线。蓝色虚线表示初始化的过程,也就是当Dubbo启动的时候是按照这个过程进行组装,红色实线表示方法的调用过程,也就是在Dubbo运行过程中实施调用的的。紫色的箭头表示类之间的继承关系,可以把子类看作和父类是同一个节点。每条线上的文字表示调用的方法。 上下层分析   从上到下可以分为十层,下面就来分析一下各个层级的作用。 Service层  

(转载)彻底的理解:WebService到底是什么?

佐手、 提交于 2019-11-27 05:06:07
(转载)彻底的理解:WebService到底是什么? 最近老是有人跟我提web service接口,怎么,怎么滴,我觉得很扎耳朵,web service是一种将服务器的服务封装起来的技术,表现为对外提供接口,所以,web service不是一种接口 !!!!!! 转载地址: http://blog.csdn.net/qq_19916577/article/details/44988015 一、序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA),当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),这里主要讲前者。 基于浏览器的瘦客户端应用程序并不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题

rpc和webservice的关系简述

旧城冷巷雨未停 提交于 2019-11-26 19:37:46
RPC(Remote Procedure Call,远程过程调用)是一个很大的概念。它是一种通过网络从远程计算机程序上跨语言跨平台的请求服务。RPC能省略部分接口代码的开发,可以跨机器之间访问对象(Java RMI),可以有更方便的加密和更高效的数据传输性能,而不需要了解底层网络技术的协议。RPC不仅可以走HTTP/HTTPS,也可以自定义TCP协议,从而省略HTTP繁杂的规则和冗余信息。 WebService是一种跨编程语言和跨操作系统平台的远程调用技术,实际上就是RPC调用的一种实现。 常用的RPC框架有Dubbo、RML、Grpc、Hessian等。 RPC的主要作用是解决分布式系统中服务之间的调用问题,能够在远程调用时,像调用本地方法一样方便,让调用者感知不到远程调用的逻辑。RPC主要是用在大型企业里面,因为大型企业里面系统繁多,业务线复杂,而且效率优势非常重要。而由于小型企业一般业务简单,不需要进行分布式架构,小型企业主要还是使用WebService中的RESTful WebService,部分特殊业务会使用Soap WebService。 "听到你要离开了,我的心突然有点疼。" 来源: https://www.cnblogs.com/yanggb/p/10872762.html

分布式框架---Dubbox 简介

╄→гoц情女王★ 提交于 2019-11-26 13:07:11
一:   rpc:远程过程调用协议 是jdk底层协议   dubbo只是对这个协议实现的一个框技术   rpc就是夸服务器 夸toamct 从一个项目调用另外一个项目中的方法 二:     Dubbox是一个分布式服务框架, 其前身是阿里巴巴开源项目Dubbo,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox。 Dubbox致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分布式需求,其实是不需要用的,只有在分布式的时候,才有dubbox这样的分布式服务框架的需求,并且本质上的作用就是服务调用,说白了就是个远程服务调用的分布式框架。 三:    节点角色说明: · Provider: 暴露服务的服务提供方。 · Consumer: 调用远程服务的服务消费方。 · Registry: 服务注册与发现的注册中心。 · Monitor: 统计服务的调用次调和调用时间的监控中心。 · Container: 服务运行容器。 调用关系说明: · 0. 服务容器负责启动,加载,运行服务提供者。 · 1. 服务提供者在启动时,向注册中心注册自己提供的服务。 · 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。

RPC(远程过程调用协议)介绍

坚强是说给别人听的谎言 提交于 2019-11-26 05:34:50
RPC框架解释 谁能用通俗的语言解释一下什么是RPC框架? -远程过程调用协议RPC(Remote Procedure Call Protocol) 首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。比如说,一个方法可能是这样定义的:Employee getEmployeeByName(String fullName)那么: 1.首先,要解决通讯的问题,主要是通过在客户端和服务器之间建立TCP连接,远程过程所调用的所有交换的数据都在这个连接里传输。连接可以是按需连接,调用结束后就断掉,也可以是长连接,多个远程过程调用共享同一个连接。 2.第二,要解决寻址的问题,也就是说,A服务器上的应用怎么告诉底层的RPC框架,如何连接到B服务器(如主机或者IP地址)以及特定的端口,方法的名称是什么,这样才能完成调用。比如基于Web服务协议栈的RPC,就要提供一个endpoint URI,或者是从UDDI服务上查找。如果是RMI调用的haul,还需要一个RMI Registry来注册服务的地址。 3.第三,当A服务器上的应用发起远程调用时,方法的参数需要通过底层的网络协议如TCP传递到B服务器