如何在 PHP 中处理 Protocol Buffers 大数据处理中心

&&»&& &&»&& ProtoBuf.js – Protocol Buffers的Javascript实现
ProtoBuf.js – Protocol Buffers的Javascript实现
On 日 Views: 23,450
在Javascript里比较常见的数据格式就是json,xml,但是这两种格式在数据传输方面有明显不足。而Protocol Buffers可以很好的解决这个问题,下面引用百科的对Protocol Buffers的定义:
Protocol Buffers是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强。现阶段官方支持C++、JAVA、Python等三种编程语言,但可以找到大量的几乎涵盖所有语言的第三方拓展包。
同为数据的存储格式,和json相比,Protocol Buffers的优点主要体现在性能和体积上,性能方面需要实际的测试,暂且不说,数据体积方面的优势是比较明显的,例如,一个json文件:
{"Name": "zhangsan", "Gender": 0, "Age": 18},
{"Name": "lisi", "Gender": 1, "Age": 19}
再看一个protobuf文件:
message Person {
required string Name = 1;
optional int32 Gender = 2;
optional int32 Age = 3;
json文件的问题在于无效数据太多,例如Name 和Gender 等,这些内容大量重复出现,使得数据体积较大。再看protobuf文件,它使用一个唯一的id(数字)来代替json里复杂的key,这样只要数据发送方和接受方都按同一套“模板”解析数据,就可以大大缩短报文体积。
ProtoBuf.js
ProtoBuf.js是基于的Protocol Buffers纯Javascript实现。主要功能是解析.proto 文件,构建message类,和简单的编码、解码。目前在一个node-webkit中使用protobuf格式于服务端进行数据交互(服务端是按照旧c++客户端要求实现的protobuf)。
目前对ProtoBuf.js的使用主要就是读取旧的.proto 文件,创建message类,编码,发送给服务端,如下:
user.proto 文件:
message UserModel {
required string cyUserno = 1;
required string cyPassWord = 2;
required string cyStatus = 3;
nodejs代码:
var fs = require("fs"),
ProtoBuf = require("protobufjs"),
userProtoStr = fs.readFileSync('./user.proto').toString(),
UserModel = ProtoBuf.loadProto(userProtoStr).build('protobuf').UserModel,
userModel= new UserModel();
userModel.set('cyUserno', '111111');
userModel.set('cyPassWord', '123456');
userModel.set('cyStatus', '1');
var buffer = userModel.encode().toBuffer();
解码的方法也很简单:
var userInfo = UserModel.decode(data);
userInfo.get('cyUserno');
另外protobuf.js还提供了一些工具,例如.proto 和.json 的转换等,具体参看他的官网:
原文链接:
转载请保留原文链接
按日期查看
2017年十月
9101112131415
16171819202122
232425262728292013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。Protocol Buffers 3.4.1发布,Google数据交换格式-红联Linux系统门户
您的位置:
&& 查看内容 - - -
Protocol Buffers 3.4.1发布,Google数据交换格式
baihuo发布于
&&字号: &&&&(网友评论&0&条)&
Protocol Buffers 是 Google 开源的一种数据交换格式,采用简单的二进制格式,比 XML、JSON 格式体积更小,编码解码效率更高,可用于数据存储、通信协议等方面。
Protocol Buffers 目前支持 Java、Python、Objective-C 、C ++、Go、JavaNano、Ruby 和 C# 。
Protocol Buffers 3.4.1 是一个 bug 修复版本:
修复 3.4.0 压缩文件中缺少的文件( Windows 和 cmake 用户受此影响)
C#: 修复 dotnet target platform 再次变成 net45
Ruby: 修复多线程使用地图时的分段错误
PHP: php_generic_service 文件级选项标签号(在 descriptor.proto 中)已重新分配,避免冲突
软件详情:
来自:开源中国社区
发表评论,与各位同人交流。回复请点击下方的我要评论按钮(游客可回复),要发表贴子请点击
Linux教程下载?“”(请点击),Linux教程免费下载。
求助Linux问题?论坛有39版块,覆盖所有Linux技术层面。前往“”
 |  |  |  |  |  |  |  |  |  |  |  | 
&2017 红联 Powered by SupSite

我要回帖

更多关于 数据处理的中心问题是 的文章

 

随机推荐