zoukankan      html  css  js  c++  java
  • RPC REST 比较

    EST 和 RPC是两种架构设计风格。

    一般情况下REST多用于与外部接口访问时的设计,RPC多用于系统内部的。

    1、RPC有依赖,REST没有。RPC需要共用一个服务注册中心,REST只要网络互通就可以。

    2、RPC服务端、客户端的动态代理,服务的注册发现,客户端到服务端的通信,不同的RPC框架实现方法也不一样。

    3、REST一般使用 域名 + HTTP + JSON/XML实现,外只需要条件较少,但是需要比较严格的文档定义,RPC一般不需要特别详细的接口文档,API中都有。

    4、RPC、RMI、HTTP、REST的区别

    RPC:远程服务调用(Remote Procedure Call),加上Protocol后可以称为远程过程调用协议,可以用不同的语言实现,可以借用HTTP协议或者其他协议来实现,一般都是通过基于TCP/IP的自定义协议实现。

    HTTP协议和TCP/IP协议有什么关系呢?HTTP是应用层协议,TCP/IP是传输层协议。

    HTTP协议请求中会包含很多内容,传输效率要低,一般RPC实现都不采用HTTP协议;RPC采用自定义的TCP协议,可以精简报文格式,一般都是采用二进制形式,客户端和服务端采用统一的序列化和反序列化方式保持数据统一,效率更高,所以一般企业内部通信都是采用自定义TCP的RPC协议,传输效率高。

    HTTP:超文本传输协议(HyperText Transfer Protocal),是应用层的一种网络传输协议,一般格式都是json或者xml,也是基于TCP/IP实现的。

    REST:是一种架构风格,是基于HTTP协议的,可以理解称一种API的规范,比如查询都是GET请求,新增都是POST,修改是PUT,删除是DELETE等。

    RMI:远程方法调用(Remote Method Invocation),是一种用于实现RPC的java API,仅仅应用在java程序上,依赖于JVM,因为他仅仅支持从一个JVM到另一个JVM的调用。

    企业内部的微服务数据传输都是采用自定义的rpc实现的,传输效率更高;http一般是面向用户的,规范统一,用户使用起来方便,直接通过浏览器地址访问接口即可。

  • 相关阅读:
    图论分支-Tarjan初步-边双联通分量
    图论分支-Tarjan初步-割点和割边
    简谈图论重要性&&图论总结
    Angular本地数据存储LocalStorage
    (转)AngularJS中使用的表单验证
    (转)AngularJS判断checkbox/复选框是否选中并实时显示
    (转载)JavaScript世界万物诞生记
    (转载)关于My97 datepicker与Angular ng-model绑定问题解决。
    mysql
    mysql
  • 原文地址:https://www.cnblogs.com/zhangkaimin/p/12067798.html
Copyright © 2011-2022 走看看