zoukankan      html  css  js  c++  java
  • 系统间调用

    一、前言

    工作上常碰到RPC,Http传输,WebService传输,Rest风格等词汇,这些东西,在我看来都是系统间传输。那么何时用这些,为什么用这些,今天在这里整理一下。

    二、比较

    1. Http

    它是个文本传输协议,简单,群众基础广,性能比较差,http协议的信息往往比较臃肿,传输速度一般。但灵活度方面,它不关心实现细节,可以跨平台,跨语言。

    2.WebService

    WebService是一种跨编程语言和跨操作系统平台的远程调用技术。在某些业务复杂,稳定性和正确性要求高的领域(如ERP、电商、支付),WebService是有用武之地的。

    如果考虑到多个引用指向同一对象的传输情况,web service要落后更多。Web service有多少个引用,就要复制多少份对象实体。Web service传输的冗余信息过多是其速度慢的原因之一,另外,WEB SERVICE的处理也很耗时,xml解析器效率普遍不高,处理xml很耗资源。这比冗余信息更为严重,冗余信息占用的只是网络带宽,而每次调用的资源耗费直接影响到服务器的负载能力。在博客上看到过评论说,用WEB SERVICE不能负载100个以上的并发用户。

    一句话总结:WEB SERVICE稳定,复杂,笨重,不合适高并发的场合。

    3. Restful

    前几年,比较火。它不是什么新的技术,只是定义了一套新的标准协议。工作中,我用过一次,没啥太多的感觉,我觉得当时直接Http调用就行,不明白为什么非要用Restful。但是要承认,它使用非常简单,与WebService相比开发效率更高;而且,它使用JSON传输,JSON可读性更好,好解析,体积小传输速度更快。

    4. RPC

    我们提到RPC,大家都会想到国内的Dubbo、Motan(新浪微博的内部框架)、gRPC(谷歌的)、SOFARPC(阿里开源的)等框架。这些都是分布式的框架,它们非常适合内部api,基于TCP、UDP的传输,速度更快,传输数据更小,性能更高,并且适合高并发的场景。

    三、总结
    系统对内,我们使用RPC,对外,我们使用Http、Restful。
    Http、Restful两者相比如何取舍,有前辈知道的话,望赐教,先谢过!

    参考资料:

    http://www.cnblogs.com/alfily/articles/4835332.html

    http://www.ruanyifeng.com/blog/2014/05/restful_api.html

    https://www.cnblogs.com/jager/p/6519321.html

  • 相关阅读:
    LFS Linux From Scratch 笔记2(经验非教程)BLFS
    LFS Linux From Scratch 笔记(经验非教程)
    Using VNC on a debian/Ubuntu server with a OS X Mac
    Use weechat (IRC client) on OS X. MacBook Pro
    HC
    Vim 7.4.1952 with Python/Ruby/Lua/Perl/C Syntax built for Ubuntu 16.04 x86_64
    How to make workflow chart using several tools in Linux?
    STM32 串口 重定向
    有哪些大家不说,但需要知道的社会规则?
    如何理解 UL94HB , UL94-V0 , UL94-V1 , UL94-V2
  • 原文地址:https://www.cnblogs.com/lihao007/p/10572187.html
Copyright © 2011-2022 走看看