FreeWheel的架构 -- Protocol Buffer by Google

FreeWheel的架构 中提到由于其日志的巨量,由TextLog转成了Binary Log  by Google protocol buffer .

 

1. Google Protocol buffer 和 Xml 比较

 

一   都可以用来定义结构化数据,protocol buffer 更简单
   如果我们要xml来定义结构化数据,通常我们会这样:
<struct>
       <field type="int">1<field>
       <field type="stirng">a<field>
</struct>
    如果使用protocol buffer,可以这样做:
     message struct {
        required int32 field1;
        required string field2;
     }
     可以看出google的protocol buffer预定义了一些类型,常用类似于C的struct的语法来定义结构化数据。这里我们可以看出,protocol buffer 更实用

二 序列化
    protocol buffer 可以在硬盘上保存结构化的数据,不同的系统都可以读取,比如 C++生成一个protocol buffer,并将其写入到硬盘, 另一个JAVA程序就可以读取了。 XML 那就不更不用说了,C++,java都可以解析和生成。protocol buffer主要是比较高效,大小是同样功能XML的30%,解析速度是XML的20~100倍。

三   RPC
    Xml-rpc 使用XML来交换数据,比如soap, web service。我个人觉得xml-rpc的效率比较低。我们也可以使用protocol buffer 来作为rpc的数据交换格式.

 

    Protocol buffer是一套用过来对数据结构进行encoding的东东,Google内部都是用这个东西来保存数据,做RPC。这个东西最大的好处就是数据结构 的序列话,并且是支持Java, C++和python,就是说你用Protocol Buffer规定的格式定义一个数据结构,用它提供的proto compiler可以把这个数据结构的定义转成C++/Java/Python代码,赞啊。

 

2.XML、 JSON、ProtocolBuffer、Lua特点比较:

http://www.cnblogs.com/visoeclipse/archive/2009/08/28/1555942.html

 

3. JSon vs PB:

http://blog.csdn.net/sudaobo/archive/2010/04/01/5439994.aspx

http://www.4feets.com/2009/08/serializing-data-json-vs-protocol-buffers/

 

4. Thrift vs PB:

http://stuartsierra.com/2008/07/10/thrift-vs-protocol-buffers

http://wiki.github.com/eishay/jvm-serializers/

 

 

转自:

http://hi.baidu.com/%B3%A3%B7%E1%B7%E5/blog/item/f8bf8921d327844eac34de0b.html

http://blog.chinaunix.net/u2/72491/showart_1075697.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值