RPC、RMI、REST的区别
初入职场,接触了不少企业常用的技术,与学校实训使用的技术有很大差异,在这里记录一下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的区别的更多相关文章
- Atitit.分布式远程调用 rpc rmi CORBA的关系
Atitit.分布式远程调用 rpc rmi CORBA的关系 1. 远程调用(包括rpc,rmi,rest)1 2. 分布式调用大体上就分为两类,RPC式的,REST式的1 3. RPC(远程 ...
- RPC和WebService的区别
最近分析的这个系统,逻辑架构中有一层是RPC interface.之前对RPC不熟悉,就上网搜索了一下资料,在此总结一下: RPC是Remote Procedure Calling,远程过程调用的缩写 ...
- Java开发中RMI和webservice区别和应用领域
Java开发中RMI和webservice区别和应用领域 一.RMI和webservice区别和联系 0. 首先,都是远程调用技术. 1. RMI是在TCP协议上传递可序列化的java对象(使用Str ...
- RPC框架-RMI、RPC和CORBA的区别
关键词:RMI RPC CORBA简 介:本篇文章重点阐述RMI,附带介绍RPC和CORBA Java远程方法调用(Java RMI)是一组实现了远程方法调用(rmi)的API. java RMI是远 ...
- rpc rmi http
1.RPC与RMI (1)RPC 跨语言,而 RMI只支持Java. (2)RMI 调用远程对象方法,允许方法返回 Java 对象以及基本数据类型,而RPC 不支持对象的概念,传送到 RPC 服务的消 ...
- rpc和websocket的区别
虽然很久以前用过rpc但是当时没用过websocket,也没做过对比,现在就对比一下 rpc的用法是客户端直接调用服务端的函数,其实他就是把数据传给服务端,服务端处理完以后返回给客户端, websoc ...
- RPC与REST的区别
https://blog.csdn.net/douliw/article/details/52592188 RPC是以动词为中心的, REST是以名词为中心的, 此处的 动词指的是一些方法, 名词是指 ...
- RESTful源码学习笔记之RPC和 RESTful 什么区别
REST,即Representational State Transfer的缩写.翻译过来是表现层状态转换.如果一个架构符合REST原则,就称它为RESTful架构.啥叫json-rpc?接口调用通常 ...
- RPC接口测试(二) RPC 与HTTP的区别
RPC 与HTTP的相同点 两种风格的API区别,总结一下其实非常简单: 1,RPC面向过程,只发送 GET 和 POST 请求.GET用来查询信息,其他情况下一律用POST.请求参数是动词,直接描述 ...
- Linux中LPC、RPC、IPC的区别
其实这玩意儿就是纸老虎,将英文缩写翻译为中文就明白一半了. IPC:(Inter Process Communication )跨进程通信 这个概念泛指进程之间任何形式的通信行为,是个可以拿来到处套的 ...
随机推荐
- Linux命令之date
date [选项] [格式] date [-u|--utc|--universal] [MMDDhhmm[[CC]yy][.ss]] date命令根据指定格式显示当前时间或设置系统时间.很多shell ...
- BTE增强
转自https://www.cnblogs.com/Garfield/p/5313962.html Enhancement(1)--BTEs 最近一个同事碰到一个FI的增强,要用BTEs实现,我也是第 ...
- BP神经网络算法预测销量高低
理论以前写过:https://www.cnblogs.com/fangxiaoqi/p/11306545.html,这里根据天气.是否周末.有无促销的情况,来预测销量情况. function [ ma ...
- edusoho twig 引入文件功能
在这里不得不提 edusoho twig 模板引擎了 跟smarty 比较类似 不过感觉还是更好一点儿 这里用的标签就只有一个 {% include '路径/文件名' %} 大家在首页做的改动比较多 ...
- 冲刺Noip2017模拟赛1 解题报告——五十岚芒果酱
题1 国际象棋(chess) [问题描述] 有N个人要参加国际象棋比赛,该比赛要进行K场对弈.每个人最多参加2场对弈,最少参加0场对弈.每个人都有一个与其他人都不相同的等级(用一个正整数来表示).在对 ...
- Recurrence Algorithm Big-Oh Solution
Recurrence Algorithm Big-Oh Solution T(n) = T(n/2) + O(1) Binary SearchO(log n)T(n) = T(n-1) + O(1) ...
- Spring Boot 创建动态定时任务
1,日期格式转换 //定时任务格式转换public static String convertCronTime(Date jobDate){ //https://blog.csdn.net/qq_39 ...
- (十五)springMvc 拦截器
文章目录 定义拦截器 接口中三个方法 配置拦截器 多个拦截器的规则 定义拦截器 springMvc 中定义拦截器只需要实现一个接口 org.springframework.web.servlet.Ha ...
- C语言字符串替换
void exchg(char * str) { if(str == NULL) return; int len = strlen(str); char tmp; for(int i=0,j=len- ...
- 【静态延迟加载】self关键字和static关键字的区别
先来看下代码,从代码中发现问题.解决问题 //先实现一个手机工厂类 class Phone{ public static function setBrand(){ echo "Main Ph ...