中间件调研

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实现,支持压缩二进制传输,TCP\UDP\HTTP等协议,适用大型系统部署。
如果这篇文章对你有帮助的话,评论或推荐下吧!(转载请注明原作者!)
posted @ 2021-05-26 18:03  哈哈哈嗝  阅读(164)  评论(0编辑  收藏  举报