protobuf
c++基础
protobuf
protobuf+RPC技术 - 知乎 (zhihu.com)
定义:是与json,XML功能相似的一种结构化数据格式,是一种google定义的结构化数据格式,用于在网络通讯间的数据序列化和反序列化,以用于网络传输。序列化:将数据结构或对象转换成二进制串的过程;反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。
特点:相对于其他格式,protobuf解析速度快(即序列化反序列化速度快),占用空间小,以及兼容性好,很适合做数据存储或网络通讯间的数据传输。
如何使用protobuf
ProtoBuf 入门教程 - 梯子教程网 (tizi365.com)
上面的网站介绍了protobuf的语法,非常简单、
然后用protoc将.proto文件转换为c++文件
1 | protoc --cpp_out=. example.proto |
4. 使用protobuf 序列化数据 - 上_哔哩哔哩_bilibili
Protobuf | 爱编程的大丙 (subingwen.cn)
message的每个属性都会生成一系列函数供编程者使用
1 | clear_xxx()//清除值 |
序列化与反序列化
1 | // 头文件目录: google\protobuf\message_lite.h |
1 | // 头文件目录: google\protobuf\message_lite.h |
CMakeLists编译的时候记得add_executable
里面加上protoc生成的cc文件,并且加上protobuf的库target_link_libraries(test_proto protobuf)
BRPC
在上面的protobuf的基础上,使用service定义rpc的service
1 | message GetRequest { |
定义的KVservice会在生成的pb.h中创建KVservice基类,声明Get函数
基础功能 | bRPC (apache.org)
然后在自己定义定义的server.cpp声明KVServiceImpl继承KVservice,实现Get函数
然后创建server对象,添加KVServiceImpl服务,启动server。
服务器端流程大概如此。