究竟什么是RPC?

RPC:远程过程调用,是一种允许分布式应用程序调用网络上不同计算机的可用服务的机制。RPC服务会在注册表中给自己注册一个UUID,成为通用唯一标识符,这个UUID针对每一项服务都是一个唯一的值,且在所有的平台上通用。

当一项RPC服务启动的时候,它会获得一个高位端口,并且以其UUID对该端口进行注册,有些RPC服务则会随机使用高位端口,而有些服务每次都尽量使用相同的端口(如果可用)。但在服务的生存期内,端口的分配时静态的,当一个客户端要与特定的RPC服务通信的时候,它无法事先知道该服务在哪一个端口上运行。因此该客户端会先建立一个到服务器的端口映射器服务,Windows在135端口,unix/linux/solaris在111端口,并使用其请求的服务的UUID向服务器端口映射器服务查询该端口号,端口映射器会将相应的端口号返回给客户端,然后关闭连接。最后,客户端利用端口映射器提供的端口号,新建一个到该服务的连接。

例如,NFS启动的时候会启用未被使用的小于1024 的端口作为监听传输使用,并主动的向 RPC 注册,因此RPC知道NFS对应使用的端口。RPC使用固定的port 111端口来监听用户端的需求并且回报给用户端正确的NFS端口。让用户端可以连结到正确的NFS端口上。所以,NFS服务必须启动RPC服务。

软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。

按端口号可分为3大类:

(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

原文:http://blog.csdn.net/genius_lg/article/details/15455217

究竟什么是RPC?,布布扣,bubuko.com

时间: 2024-08-07 13:30:48

究竟什么是RPC?的相关文章

C# 的轻量级 RPC 框架

Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标:20000 tps. Concurrency level: 8 threads Complete requests: 20000 Time taken for tests: 0.886 seconds Time per request: 0.044 ms (avg) Requests per second: 22573 [#/sec] (avg) Concurrency level: 8

EJB究竟是什么,真的那么神奇吗??

1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!这个问题事实上挺关键的,由于J2EE 中并没有说明确,也没有详细的指标或者事例告诉广大程序猿什么时候用EJB 什么时候不用.于是大家都产生一些联想,觉得EJB"分布式运算"指得是"负载均

WebService究竟是什么?

一.序言 大家或多或少都听过WebService(Web服务),有一段时间非常多计算机期刊.书籍和站点都大肆的提及和宣传WebService技术,当中不乏非常多吹嘘和做广告的成分.可是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService究竟是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦client应用程序,一种是基于浏览器的富client应用程序(RIA),当然后一种技术相对来说更加的时髦一些(如如今非常流行的Ht

RPC、RMI与MOM与组播 通信原理

转:http://blog.csdn.net/you12345678901234567/article/details/7625797 远程过程调用(RPC): 即对远程站点机上的过程进行调用.当站点机A上的一个进程调用另一个站点机上的过程时,A上的调用进程挂起,B上的被调用过程执行,并将结果返回给调用进程,使调用进程继续执行[B上的被调用过程的参数和执行结果在调用和被调用进程之间是通过消息传递来实现的,表现为C/S关系] 为实现不同站点机上的RPC,调用和被调用进程各方都要保留一个用于存放过程

转:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确 .

近期在做淘宝客的项目,大家都知道,淘宝的商品详细描述字符长度很大,所以就导致了今天出现了一个问题 VS的报错是这样子的  ” 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确“ 还说某个@desricption 过长之类的话 直觉告诉我,某个字段过长溢出了 第一时间  :看看字段的数据类型 ,该字段类型为text,也就是无限制的长度,所以,数据库是没有问题的 第二 时间 :看看三层,代码生成器自动生成的代码如下这段 [csharp] view plaincopyprint? db

RPC是什么?为什么要学习RPC?

随着近几年分布式.微服务架构的火热,RPC在开发工作中使用的越来越多,也变的越来越重要. 今天我们来看RPC是什么,为什么要了解RPC,通过学习RPC我们能掌握什么内容? 什么是「RPC」 RPC 全称 Remote Procedure Call, wikipedia的部分说明: RPC is a request–response protocol. An RPC is initiated by the client , which sends a request message to a kn

[转帖]脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么? http://www.52im.net/thread-1732-1-1.html 1.引言 本文接上篇<脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手>,继续脑残式的网络编程知识学习 ^_^. 套接字socket是大多数程序员都非常熟悉的概念,它是计算机网络编程的基础,TCP/UDP收发消息都靠它.我们熟悉的web服务器底层依赖它,我们用到的MySQL关系数据库.Redis内存数据库底层依赖它.我们用微信和别

Netty(RPC高性能之道)原理剖析

1,Netty简述 Netty 是一个基于 JAVA NIO 类库的异步通信框架,用于创建异步非阻塞.基于事件驱动.高性能.高可靠性和高可定制性的网络客户端和服务器端 RPC高性能分析,请参考文章"[总结]RPC性能之道 " 特点 异步.非阻塞.基于事件驱动的NIO框架 支持多种传输层通信协议,包括TCP.UDP等 开发异步HTTP服务端和客户端应用程序 提供对多种应用层协议的支持,包括TCP私有协议.HTTP协议.WebSocket协议.文件传输等 默认提供多种编解码能力,包括Jav

透析SOA、RPC、SOAP、REST、ICE、ESB模型发展史

最初的程序全是单机程序,没有网络,没有RPC,更没有RESTful.程序猿写的东西孤独运行在单机上. 那时的程序猿们语言相通,参与开发同一套系统的团队可以面对面沟通. 网络出现了.网络,也带来变乱.网络是不同系统之间的通信,无论是早期网络,还是web,如何实行系统间的互联互通是个头痛的问题. 而SOA就是一种思想,就是把项目拆成组件,每个组件暴露出服务,"你调我,我调你",大家一起把活干完.强调的是服务的相互调用. SOA SOA:面向服务的软件架构(Service Oriented