云计算的RPC小框架

在过去的Client-Server时代,类似于CORBA和RMI这样的RPC框架层次很多,因为通过这类技术能够将单机的IPC(Inter-process communication),进程间通信扩展为多机之间的通讯方式,这对扩展性方面是非常有帮助和价值的,但由于种种原因这些RPC框架并没有被业界大规模的采用和使用。

而在我们的这个年代,需要对进行分布式通信的机器越来越多了,虽然可以通过使用HTTP协议来进行简易的通信,但是如果能让程序基于一个方便更好用,并且非常专业的RPC框架的话,那是再好不过了。本文将给大家介绍当前两个最受欢迎的RPC框架:其一是Google的Protocol Buffers;另一个则是Facebook的Thrift。

Protocol Buffers

Protocol Buffers,是Google内部使用一种语言中立、平台中立和可扩展的序列化结构数据的方式,并提供基于Java、C++ 和Python这三种语言的实现,每一种实现都包含了相应语言的编译器以及库文件,并且在很多Google的产品中都有使用。它是一种二进制的格式,所以其速度是使用XML进行数据交换的10倍左右。它主要用于两个方面:其一是普通的RPC(Remote Procedure Call,远程方法调用)通信,它可用于分布式应用之间或者异构环境下的通信;其二是数据存储方面,因为它自描述,而且压缩很方便,所以可用于对数据进行持久化,比如存储日志信息等,并可被MapReduce程序的处理。

Thrift

Thrift 是由 Facebook开源的一个 RPC 框架,现在已经成为了著名开源组织Apache的孵化项目之一,它主要的几个特点是:其一是支持非常多的语言,包括在 Web开发中很常用的 PHP,以及 C++/Python/Java 等在 Web后端非常常用的语言,甚至还包括近期很流行的 Ruby和Erlang;其二是提供完整的 RPC 框架实现,通过脚本就能生成通讯相关的框架代码,比如搭建一个简易的服务只需要几分钟,这样使得开发者只需要集中精力处理好业务逻辑即可,;其三是拥有被 Facebook、Last.fm 等不少大规模互联网应用验证过的性能和可用性。总体而言,它的代码实现是很优秀的,逻辑层次非常清楚,易于定制扩展,同时通过框架生成代码非常方便,也节省很多通讯方面的开发和调试时间,并且 Facebook号称Thrift在速度上和Protocol Buffers相比有一定的优势。

无论是Protocol Buffers还是Thrift都非常优秀,但是还是希望大家能够按照应用自身的实际情况来进行抉择,比如在开发YunTable时,由于性能和开发成本的考虑,我并没有选择这两种RPC框架的其中之一,而是自建一套简易的二进制通讯框架,并且非常简单易用,同时速度飞快。

时间: 2024-09-08 21:14:20

云计算的RPC小框架的相关文章

jQuery插件资源分享:WEBJX收集微型的JavaScript小框架

文章简介:本文即将介绍的是 15 个微型的 JavaScript 小框架,这些框架都支持 Web 和智能手机平台,短小精干.  问一个 Web 开发者最喜欢的 JS 库是什么,多数回答都是 jQuery,不管他所作的网站是大是小.开发者倾向使用 jQuery 的原因是它可以降低代码的复杂度.而且 jQuery 经过良好的测试,大量的用户以及很好的社区生态以及大量的插件.不过 jQuery 的体积比较大,本文即将介绍的是 15 个微型的 JavaScript 小框架,这些框架都支持 Web 和智能

RPC通信框架——RCF介绍

现有的软件中用了大量的COM接口,导致无法跨平台,当然由于与Windows结合的太紧密,还有很多无法跨平台的地方.那么为了实现跨平台,支持Linux系统,以及后续的分布式,首要任务是去除COM接口. 在对大量框架进行调研后,决定使用RCF替换COM接口. RPC通信框架 CORBA ICE Thrift zeromq dbus RCF YAMI4 TAO 为什么选择RCF 经过各项对比,认为: RCF的使用方式与现有的COM接口方式非常类似,在开发上可以更快速.更容易的替换COM,并且可以少犯错

可重构云计算领域的小文件系统设计与实现

可重构云计算领域的小文件系统设计与实现 刘浩洋 祝永新 借助ASIC系统的高效性和软件的可编程性,可重构概念使计算机的性能获得了进一步的提升空间.但在云计算应用背景下,需要一个文件系统对互联网上的海量小文件进行高效处理.为此,阐述和分析现有的小文件系统,设计一个基于现场可编程门阵列(FPGA)的小文件系统(FPGASmallFS).该系统通过简化文件系统结构和动态划分磁盘卷,提高文件系统的速度和磁盘空间利用率,同时借助FPGA的并行加速实现文件系统挂载过程的加速,从而提高磁盘空间利用率.测试结果

云计算之RPC框架

在过去Client-Server的年代,类似CORBA和RMI这样的RPC框架层次不求,因为通过这类技术能将单机的IPC(Inter-process communication,进程间通信)扩展为多机之间的通讯,这对扩展性方面是非常有帮助的,但由于种种原因这些RPC框架并没有被业界大规模的采用.而在云计算时代,需要进行分布式通信的机器越来越多,虽然可以通过使用HTTP协议来进行简易地通信,但是如果能让程序基于一个方便好用,并且非常专业的RPC框架的话,那是再好不过了.本文将给大家介绍当前两个最受

分享一个项目missian(一个异步RPC的框架)

问题描述 项目地址:http://code.google.com/p/missian/目前代码注释还不够,但是提供的几个例子基本上说明了missian的用法.=========================================================================================大家都知道,Hessian是一个了不起的RPC框架.但是,它的调用是同步的,并且只能基于HTTP传输.我创建missian(mina+hessian的意思)的目的有

联合云:云计算环境的统一框架

不管从哪方面来看,联合云(federated cloud)的概念都很出人意料.因为能够管理多个复杂的遗留环境,同时又能够整合基础架构,云计算飞快地发展了起来.可是随着各企业推进各自云计算项目的脚步越来越快,有一大部分CIO目前开始全力应付杂乱无序的云计算环境,似乎云计算环境并不是那么在控制中. Metis Strategy公司的总裁Peter High表示:"我们能够看到,有一大部分业务部门的人自作聪明地进行私有云的投资兴建,而没有和CIO齐心协力,制定一个统一的计划,来对云计算进行最有效的利用

惠普云计算人才培养战略框架的探秘

云计算时代骤然来临,我们看到了各公司推出的云计算方案,包括从业务需求到商业模式,从技术方案到实施路线,真是精彩纷呈,百花齐放,同时又有点云遮雾绕,乱花渐迷的感觉.在众多方案中我们很少看到人的因素,而人的因素往往却是云计算战略成功的CFS,直接决定着云计算战略的成败与否,"人"才是云计算的发动机.方向盘和灵魂! 因为不论是怎样的云计算解决方案和运营模式,都需要人来调查需求.人来甄别方案.人来驱动实施.人来推广上线,最终靠人来运营云计算的服务体系,当然,也需要人来持续创新和改进这一体系,从

通用RPC简易框架

目的:调用远程业务逻辑方法,并对返回的结果进行处理.可扩展支持多种协议:HTTP, JMS, RMI, FTP等,实现负载均衡,异步调用.默认给出HTTP实现. 概念: Agent: 我们将这套实现称为agent Server:远程应用服务, RPC服务的提供者. Client:客户端,RPC服务的调用者 Agent server:agent在server端的部分 Agent client: agent在client端的部分 Agent group:具有相同业务逻辑的远程服务器的组合,提供相同的

百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome_javascript技巧

之前发布过这样的代码,其实问题不大,但这里的版本主要是增加一些功能,回调执行服务器端的方法,对于asp.net开发或ajax开发都是非常有价值的改进.先看下效果图: 原有百度的Popup.js在有 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&g