zoukankan      html  css  js  c++  java
  • 中间件调研

    1.  简介

    大型企业存在各种Client/Server交互业务,大部分都是基于RPC远程过程调用协议,全称:Remote Procedure Call Protocol。传输协议基于TCP、UDP、Http等。小部分采用WCF或者Web Service。

    2.  交互方式

    2.1  WEB Service

    WEB服务使用SOAP协议,传输采用xml传递数据,支持跨语言,是比较常见应用场景,但是缺点也很明显: 

    1. WebService使用了XML对数据封装,会造成大量的数据要在网络中传输。  

    2. WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言。

    无法应对高并发、高效率需求场景。

    2.2  WCF

    Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。

    整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTPFTP的相关技术,支持远程调用对象,其实也是.net平台的RPC实现方式, 除了webService方式外不支持跨语言跨平台的,在将来云端部署服务时,客户端的语言限制比较大,并且兼容集成多种交互,比较重,大并发可能性能不够理想。

    2.3  Thrift

    thrift最初由facebook开发用做系统内各语言之间的RPC通信 。

    目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Service,基于 JSON 消息格式的 RESTful 服务等。其中所用到的数据传输方式包括 XML,JSON 等,然而 XML 相对体积太大,传输效率低,JSON 体积较小,新颖,但还不够完善。由 Facebook 开发的远程服务调用开源框架Apache Thrift,它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生成引擎可以在多种语言中,如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk 等创建高效的、无缝的服务,其传输数据采用二进制格式并压缩,相对 XML 和 JSON 体积更小,对于高并发、大数据量和多语言的环境更有优势。

    1.1  总结

    1. WEB SERVICE 跨语言跨平台,但是效率比较低,对高并发支持不够;
    1. WCF 集成.NET交互平台,是RPC的Windows.NET实现,跨语言支持不够,体积庞大,高并发、高效率限于Remoting等.Net下远程对象调用;
    1. Thrift是跨平台多语言的RPC实现,支持压缩二进制传输,TCPUDPHTTP等协议,适用大型系统部署。
    如果这篇文章对你有帮助的话,评论或推荐下吧!(转载请注明原作者!)
  • 相关阅读:
    算法学习算法复杂度
    算法学习冒泡排序和快速排序
    焦点管理
    数据结构学习链表、双向链表、循环链表
    数据结构学习数组、栈和队列
    数据结构学习集合
    数据结构学习字典和散列表
    (转)一个webservice的小demo
    堆栈详解
    JS实现大小写转换
  • 原文地址:https://www.cnblogs.com/Liyuting/p/14814549.html
Copyright © 2011-2022 走看看