后端程序员之路 39、一个Protocol Buffer实例

实际工作的Protocol Buffer使用经验

# 写proto文件
- 协议版本 项目用的是protobuf2,所以要指定 syntax = "proto2";
- 包名 package xxx_yyy;
- 优化选项 option optimize_for=LITE_RUNTIME;
- 导入其它依赖的proto import "typea.proto";
- message定义
    - required定义必选
    - repeated定义重复项,底层实现一般是list
    - int64 timestamp

# 从proto生产代码
- protoc --proto_path=IMPORT_PATH --cpp_out=DST_DIR --java_out=DST_DIR --python_out=DST_DIR path/to/file.proto
- protoc --cpp_out=./ ./aaa_bbb.proto

Language Guide  |  Protocol Buffers  |  Google Developers
https://developers.google.com/protocol-buffers/docs/proto

时间: 2024-10-10 07:06:01

后端程序员之路 39、一个Protocol Buffer实例的相关文章

后端程序员之路 47、Hadoop hdfs

Hadoop的核心是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase.Hive等,这些都是基于HDFS和MapReduce发展出来的.Hadoop Distributed File System,简称HDFS,是一个分布式文件系统.MapReduce是一套从海量源数据提取分析元素最后返回结果集的编程模型.Hadoop典型应用有:搜索.日志处理.推荐系统.数据分析.视频图像分析.数据保存等. 什么是HDFS及HDFS架构设

后端程序员之路 29、Thrift

Apache Thrift是Facebook实现的一个高效的.支持多种编程语言的远程服务调用(RPC)框架. Apache Thrift - Homehttp://thrift.apache.org/ centos上安装thrift - 辰羽的视界http://www.1207.me/archives/301.html Apache Thrift - C++http://thrift.apache.org/tutorial/cpp Apache Thrift - 可伸缩的跨语言服务开发框架htt

后端程序员之路 57、go json

go自带json处理库,位于encoding/json,里面的test很具参考意义,特别是example_test.go json - The Go Programming Languagehttps://golang.org/pkg/encoding/json/ GO语言练习:构建json 和 解析JSON 实例 - fengbohello - 博客园http://www.cnblogs.com/fengbohello/p/4665883.html - Marshal    - 字符串将以UT

后端程序员之路 40、Pthreads

POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准.线程这个东西在操作系统原理里讲得比较清楚了,再加上对windows那一套进程线程的东西比较清楚,所以这里还是很多可以直接类比学习的. # 基本结构和概念- pthread_t:线程ID,可以基本认为和windows一样是个DWORD- pthread_attr_t:线程属性,主要包括scope属性.detach属性.堆栈地址.堆栈大小.优先级等- pthread_mutex_t, 互斥体 # 线程操作函数

后端程序员之路 35、Index搜索引擎实现分析4-最终的正排索引与倒排索引

# index_box 提供搜索功能的实现- 持有std::vector<ITEM> _buffer; 存储所有文章信息- 持有ForwardIndex _forward_index;    - _forward_index.build_findex( _buffer )    - get_all_items _forward_index.get_all_items    - get_items _forward_index.get_items(docid_vect, result, filt

后端程序员之路 12、K最近邻(k-Nearest Neighbour,KNN)分类算法

K最近邻(k-Nearest Neighbour,KNN)分类算法,是最简单的机器学习算法之一.由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合.该算法的功能有:从目标区域抽样计算欧式或马氏距离:在交叉验证后的RMSE基础上选择启发式最优的K邻域:计算多元k-最近邻居的距离倒数加权平均. 机器学习(一)——K-近邻(KNN)算法 - oYabea - 博客园http://www.cnblo

后端程序员之路 38、Scala入门

Scala 是 Scalable Language 的简写,是一门多范式的编程语言. 语言特性:1.面向对象,所有值都是对象,类可以继承和组合:2.函数式,支持闭包,支持柯里化等等:3.静态类型,支持泛型,支持模式匹配:4.支持Actor并发模型,使用Akka实现. 和c++/java相比,有意思的特性:1.Trait 特征,不是c++的萃取相当于接口,但是可以定义属性和方法,相当于c++的非纯虚函数接口声明类 2.模式匹配函数式语言的标配了,x match {},case a => b,匹配x

后端程序员之路 26、CAP理论

可能是CAP理论的最好解释 - 西代零零发 - 博客频道 - CSDN.NEThttp://blog.csdn.net/dc_726/article/details/42784237 CAP理论 - ThinkDiff - 博客园http://www.cnblogs.com/bodhitree/p/5779213.html CAP理论 - 老码农的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/chen77716/article/details/30635543

后端程序员之路 3、fastcgi、fastcgi++

CGI与FastCGI - wanghetao - 博客园http://www.cnblogs.com/wanghetao/p/3934350.html eddic/fastcgipp: A C++ FastCGI and Web development platform:https://github.com/eddic/fastcgipp fastcgi++: Main Pagehttp://isatec.ca/fastcgipp/ 分布式(1):nginx+spawn-fcgi+fchi +