远程过程调用协议

[原]Web Service学习

家住魔仙堡 提交于 2019-12-19 02:29:03
一、 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 (Universal Description,

面试去阿里,你首先要知道的26道dubbo面试题

我是研究僧i 提交于 2019-12-18 05:13:38
1.Dubbo是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两个服务器交互数据。 2.Dubbo的由来? 互联网的快速发展,Web应用程序的规模不断扩大,一般会经历如下四个发展阶段。 单一应用架构 当网站流量很小时,只需一个应用, 将所有功能都部署在一起即可 。 垂直应用架构 当访问量逐渐增大,单一应用按照有业务线 拆成多个应用 ,以提升效率。 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免, 将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心 ,使前端应用能更快速的响应多变的市场需求。 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。 流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现, 此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。 此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。 3.Dubbo的主要应用场景? 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本

Web Service简介

梦想与她 提交于 2019-12-17 01:05:54
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 (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前

C#开发和调用Web Service

送分小仙女□ 提交于 2019-12-16 14:40:16
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 (Universal Description, Discovery, and

【基础】RPC、JSON-RPC和HTTP区别

不想你离开。 提交于 2019-12-14 01:10:53
一. RPC RPC是什么 RPC(Remote Procedure Call)指的是远程过程调用,简单的说,RPC就是从一台机器上通过参数传递的方式调用另一台机器上的一个函数或方法并得到响应结果。 RPC会隐藏底层的通讯细节。 RPC是一个请求响应模型,客户端发起请求,服务器返回响应。 RPC在使用形式上像调用本地函数一样去调用远程的函数。 常见的RPC框架 dubbo: 阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。 motan: 新浪微博开源的一个Java 框架。它诞生的比较晚,起于2013年,2016年5月开源。Motan 在微博平台中已经广泛应用,每天为数百个服务完成近千亿次的调用。 rpcx: Go语言生态圈的Dubbo,比Dubbo更轻量,实现了Dubbo的许多特性,借助于Go语言优秀的并发特性和简洁语法,可以使用较少的代码实现分布式的RPC服务。 gRPC: Google开发的高性能、通用的开源RPC框架,主要面向移动应用开发并基于HTTP2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。 thrift: Apache的一个跨语言的高性能的服务框架 JSON-RPC: JSON

进程间通信/RPC/Thrift RPC介绍

此生再无相见时 提交于 2019-12-12 14:18:55
进程间通信 (IPC) 分为 (1)本地过程调用(LPC)LPC用在多任务操作系统中,使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。 (2)远程过程调用(RPC)RPC类似于LPC,只是在网上工作 RPC(Remote Procedure Call远程过程调用)是一种应用层协议,用于实现进程间通信,并封装了远程调用的细节。目前的RPC框架大致有两种不同的侧重方向,一种偏重于服务治理(如Dubbo、DubboX)等,另一种偏重于跨语言调用(如Thrift、gRPC、Hessian等)。 Thrift是一个典型的C/S结构,用户在thrift描述文件(IDL)中声明自己的服务,包括相关数据结构定义和服务接口声明;通过代码生成工具生成服务端和客户代码(可以为不同语言),开发人员在服务端实现服务,在客户端调用服务即可实现不同语言间的远程服务调用。 Thrift RPC 分层架构如下: 来源: CSDN 作者: wyy_blog 链接: https://blog.csdn.net/qq_36616692/article/details/103486583

如何从0到1设计一个类Dubbo的RPC框架

和自甴很熟 提交于 2019-12-11 23:26:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> RPC和RPC框架 1.RPC(Remote Procedure Call) 即远程过程调用, 主要解决远程通信间的问题,不需要了解底层网络的通信机制。 2.RPC框架 RPC框架负责屏蔽底层的传输方式(TCP或者UDP)、序列化方式、以及通信细节。 实际使用中,并不需要关心底层通信细节和调用过程,让业务端专注于业务代码的实现。 国内大家熟知的PRC框架,阿里的HSF和Dubbo(开源) Dubbo的发展由来 1. 业务规模小 比如早期一个应用Java War包,将所有功能都打包,部署在一个单机服务器,调用接口也比较方便,不涉及到任何分布式场景。 2.业务规模变大 随着业务的快速发展,业务越来越多、子系统也越来越多时。比如:淘宝的交易系统、商品系统、用户系统、评价系统…上百个系统的出现。 系统变得越来越复杂,业务代码依然耦合在一起。比如最早期的淘宝denali工程,包含所有业务系统的代码,就仅打包部署都需要很长的时间。 并且,随着每个业务线的快速发展,业务代码耦合在一起,上线后出现问题急需要回滚代码,拉分支、大量的代码merge工作,这个过程极其痛苦。 这个时候,你会发现技术已经成了业务的瓶颈,急需把业务单独抽离出来,各自单独部署。 3.Dubbo和HSF的出现 应用系统一旦涉及到拆分部署,问题就来了

第6章 RPC之道

ⅰ亾dé卋堺 提交于 2019-12-10 13:23:29
    6.1 认识RPC      分布式、微服务的架构思维中都不能缺少 RPC 的影子       RPC(Remote Procedure Call)远程过程调用。通过网络在跨进程的两台服务器之间传输信息,我们使用的时候不用关心网络底层的实现,通过RPC调用远程服务就像本地调用系统内部方法一样方便。      在 OSI 网络通信模型中,RPC跨越了传输层和应用层,使开发分布式应用程序变得非常方便。      RPC基本的调用过程如下图。客户端发起一个 RPC请求,本地调用 client stub 负责将调用的接口、方法和参数按照事先约定好的协议进行序列化,然后由 RPC 框架的 RPCRuntime 实例通过 socket 传输到远程服务器上。      远程服务器端 RPCRuntime 实例收到请求后再通过 server stub 进行反序列化,发起最终的 server method 调用。       一个良好的 RPC框架要兼具可靠性和易用性,可靠性方面要保证 I/O、序列化等准确处理,还要考虑网络的不确定性,心跳、网络闪断等因素;易用性方面要考虑超时与重试机制的控制,同步和异步调用的使用等。以上都是考量一个 RPC框架好坏的标准。       目前有很多优秀的开源 RPC框架,比如国内的 Dubbo(阿里)、Motan(新浪微博)等。   6.2

RPC与LPC

▼魔方 西西 提交于 2019-12-06 12:17:02
作者:洪春涛 链接:https://www.zhihu.com/question/25536695/answer/221638079 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 本地过程调用 RPC就是要像调用本地的函数一样去调远程函数。在研究RPC前,我们先看看本地调用是怎么调的。假设我们要调用函数Multiply来计算lvalue * rvalue的结果: 1 int Multiply(int l, int r) { 2 int y = l * r; 3 return y; 4 } 5 6 int lvalue = 10; 7 int rvalue = 20; 8 int l_times_r = Multiply(lvalue, rvalue); 那么在第8行时,我们实际上执行了以下操作: 将 lvalue 和 rvalue 的值压栈 进入Multiply函数,取出栈中的值10 和 20,将其赋予 l 和 r 执行第2行代码,计算 l * r ,并将结果存在 y 将 y 的值压栈,然后从Multiply返回 第8行,从栈中取出返回值 200 ,并赋值给 l_times_r 以上5步就是执行本地调用的过程。(20190116注:以上步骤只是为了说明原理。事实上编译器经常会做优化,对于参数和返回值少的情况会直接将其存放在寄存器

Dubbo的核心组件、架构设计与Dubbo面试考点

两盒软妹~` 提交于 2019-12-06 07:03:01
1.Dubbo是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两个服务器交互数据。 2.Dubbo的由来? 互联网的快速发展,Web应用程序的规模不断扩大,一般会经历如下四个发展阶段。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起即可。 垂直应用架构 当访问量逐渐增大,单一应用按照有业务线拆成多个应用,以提升效率。 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。 流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。 此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。 3.Dubbo的主要应用场景? 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。