初入职场,接触了不少企业常用的技术,与学校实训使用的技术有很大差异,在这里记录一下RPC、RMI与REST的区别。

概念

RPC(Remote Procedure Call,远程过程调用)
  • 一种通过从远程计算机程序上请求服务,而无需了解底层网络技术的协议。
  • 面向过程。解决分布式系统中,服务之间的调用问题。
  • 远程调用时,像本地调用一样方便,调用者感觉不到远程调用的逻辑。
  • 可以采用 TCP、UDP、HTTP、管道通信等技术去实现。
RMI(Remote Method Invocation,远程方法调用)
  • 仅支持Java,由java.rmi包提供支持。
  • 能够让一个Java程序去调用远程计算机上的Java对象的方法,调用的结果就像在本地调用一样。
  • 是EJB(Enterprise JavaBeans)的支柱,是建立分布式Java应用程序的方便途径。
  • 使用JRMP(Java Remote Messaging Protocol,Java远程消息交换协议)进行通信。JRMP是专为Java的远程对象制定的协议。
REST(Representational State Transfer,表述性状态传递)
  • 一种软件架构风格,面向资源(URL)。
  • 很好的利用了 HTTP 中已有的请求方法(PUT、POST、GET、DELETE)做操作形式的区分,以简化URL。
  • 通过HTML协议使用JSON字符串传输数据。

区别

名称 适用范围 底层 优势/劣势
RPC 一种协议,可以跨语言实现 可以采用 TCP、UDP、HTTP、管道通信等实现 面向过程;
性能通常更高,因为实现更底层、封装的数据量更小
RMI Java对象和基本数据类型 JRMP协议 仅适用于Java,要求服务端和客户端均为Java开发
REST 应用服务架构 HTTP协议 URL精简性、可读性高;
面向资源;
资源描述与视图的松耦合
  • 一般后端使用RPC(性能高),前端使用REST(HTTP)。
  • REST 基于 HTTP 协议,因此通常会有前端代理进行请求分发,这种前端代理层的水平扩展不太容易;但 RPC 服务借助注册中心可以轻易实现服务节点的增删和动态调整。

RPC、RMI、REST的区别的更多相关文章

  1. Atitit.分布式远程调用  rpc  rmi  CORBA的关系

    Atitit.分布式远程调用  rpc  rmi  CORBA的关系 1. 远程调用(包括rpc,rmi,rest)1 2. 分布式调用大体上就分为两类,RPC式的,REST式的1 3. RPC(远程 ...

  2. RPC和WebService的区别

    最近分析的这个系统,逻辑架构中有一层是RPC interface.之前对RPC不熟悉,就上网搜索了一下资料,在此总结一下: RPC是Remote Procedure Calling,远程过程调用的缩写 ...

  3. Java开发中RMI和webservice区别和应用领域

    Java开发中RMI和webservice区别和应用领域 一.RMI和webservice区别和联系 0. 首先,都是远程调用技术. 1. RMI是在TCP协议上传递可序列化的java对象(使用Str ...

  4. RPC框架-RMI、RPC和CORBA的区别

    关键词:RMI RPC CORBA简 介:本篇文章重点阐述RMI,附带介绍RPC和CORBA Java远程方法调用(Java RMI)是一组实现了远程方法调用(rmi)的API. java RMI是远 ...

  5. rpc rmi http

    1.RPC与RMI (1)RPC 跨语言,而 RMI只支持Java. (2)RMI 调用远程对象方法,允许方法返回 Java 对象以及基本数据类型,而RPC 不支持对象的概念,传送到 RPC 服务的消 ...

  6. rpc和websocket的区别

    虽然很久以前用过rpc但是当时没用过websocket,也没做过对比,现在就对比一下 rpc的用法是客户端直接调用服务端的函数,其实他就是把数据传给服务端,服务端处理完以后返回给客户端, websoc ...

  7. RPC与REST的区别

    https://blog.csdn.net/douliw/article/details/52592188 RPC是以动词为中心的, REST是以名词为中心的, 此处的 动词指的是一些方法, 名词是指 ...

  8. RESTful源码学习笔记之RPC和 RESTful 什么区别

    REST,即Representational State Transfer的缩写.翻译过来是表现层状态转换.如果一个架构符合REST原则,就称它为RESTful架构.啥叫json-rpc?接口调用通常 ...

  9. RPC接口测试(二) RPC 与HTTP的区别

    RPC 与HTTP的相同点 两种风格的API区别,总结一下其实非常简单: 1,RPC面向过程,只发送 GET 和 POST 请求.GET用来查询信息,其他情况下一律用POST.请求参数是动词,直接描述 ...

  10. Linux中LPC、RPC、IPC的区别

    其实这玩意儿就是纸老虎,将英文缩写翻译为中文就明白一半了. IPC:(Inter Process Communication )跨进程通信 这个概念泛指进程之间任何形式的通信行为,是个可以拿来到处套的 ...

随机推荐

  1. python-30个骚操作

    1.冒泡排序     2.计算x的n次方的方法     3.计算a*a + b*b + c*c + ……     4.计算阶乘 n!             5.列出当前目录下的所有文件和目录名   ...

  2. cron表达式的用法 【比较全面靠谱】

    转: cron表达式的用法 cron表达式通过特定的规则指定时间,用于定时任务,本文简单记录它的部分语法和实例,并不完全,能覆盖日常大部分需求. 1. 整体结构 cron表达式是一个字符串,分为6或7 ...

  3. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_13-删除页面-前端-Api调用

    增加删除链接 <el-button size="small" type="text" @click="del(page.row.pageId)& ...

  4. ssh登陆

    之前在windows下有putty,xshell,mobaXterm 工具可以选择. 现在用mac,暂时没怎么找到好到软件,直接用ssh好了. ssh -p 22 username@192.xxx.x ...

  5. JS 正则表达式 控制文本框只能输入中文、英文、数字与指定特殊符号

    JS 正则表达式 控制文本框只能输入中文.英文.数字与指定特殊符号(屏蔽表情输入) onkeyup:释放键盘事件 onpaste:粘贴事件 oncontextmenu :鼠标右击事件 只能输入中文: ...

  6. Pytorch Tensor, Variable, 自动求导

    2018.4.25,Facebook 推出了 PyTorch 0.4.0 版本,在该版本及之后的版本中,torch.autograd.Variable 和 torch.Tensor 同属一类.更确切地 ...

  7. effective java(第三版)---读书笔记

    第一章 引言 < Effective Java>这本书并不厚,而且并不适合初学者,适合有一定的工作经验的java攻城狮.这本书不是百科全书式的JAVA 手册,而是试图在讲述如何正确.高效地 ...

  8. 字符编码笔记:ASCII,Unicode 和 UTF-8(理解)

    1.ASCII 码 美国制定的字符编码规则,对英语字符与二进制位之间的关系做了统一规定. 占一个字节,8 位,最多可表示 2^8 = 256 种状态(字符) 实际共有 128 个字符,只占用一个字节的 ...

  9. 《你必须知道的495个C语言问题》读书笔记之第1-2章:声明和初始化

    1. C标准中并没有精确定义数值类型的大小,但作了以下约束: (1) char类型可以存放小于等于127的值: (2) short int和int可以存放小于等于32767的值: (3) long i ...

  10. 测试sigaction重启动标识

    #include <stdio.h>#include <unistd.h>#include <signal.h>#include <string.h># ...