centos 使用protobuf?protobuf安装

网络数据通信—ProtoBuf实现序列化和反序列化

Protobuf实现序列化和反序列化

本文将介绍如何通过Protobuf实现网络数据通信,具体案例中我们构建一个通讯录应用,包含客户端和服务器端的交互。主要需求包括:

客户端可执行的操作:新增联系人、删除联系人、查询通讯录列表、查询联系人详细信息。

服务器端提供增删查能力,并确保数据持久化。

客户端与服务器间交互数据使用Protobuf。

环境搭建

选择cpp-httplib库,该库为C++封装的http库,适用于跨平台(如Linux、Windows)的http客户端和服务端开发。使用cpp-httplib时,只需包含头文件httplib.h,并在编译时加上-lpthread选项。相关库源码可访问github.com/yhirose/cpp-...

CentOS环境注意事项

在CentOS下,若使用自带的g++版本(如4.8.5,发布于2015年),在编译项目时可能遇到问题。解决方法是升级gcc/g++至更高版本。

约定双端交互接口

新增联系人

删除联系人

查询通讯录列表

查询联系人详细信息

约定双端交互req/resp

设计了多个protobuf文件用于定义请求和响应结构,包括base_response.proto、add_contact_request.proto至find_all_contacts_response.proto等。

相关视频推荐

高性能服务器通信协议设计的奥秘:XML、JSON、Protobuf性能对比分析

Protobuf序列化协议工程应用方法和实践分析

qq微信即时通讯技术细节:方案选择

C/C++ Linux服务器架构师学习资料分享群:812855908(包含C/C++、Linux、golang等技术资料)

客户端代码实现

main.cc:主程序

ContactException.h:异常类定义

ContactsServer.h:客户端通讯录服务端定义

ContactsServer.cc:客户端通讯录服务实现

服务端代码实现

定义通讯录结构(contacts.proto)

main.cc:服务端主程序

ContactException.h:异常类定义

ContactsServer.h:通讯录服务定义

ContactsServer.cc:通讯录服务实现

Utils.h:工具类定义

ContactsMapper.h:数据持久化接口定义

ContactsMapper.cc:数据持久化接口实现

注:在实际应用中,应将通讯录数据存储至数据库,此处为简化流程,以本地文件作为数据存储。

centos8安装tcmalloc

做存储,数据库系统方面的开发,主要用到* grpc/libevent/libev/libasio实现高性能网络服务器* protobuf数据结构序列化/反序列化,方便数据交换* LevelDB/RocksDB嵌入式KV数据库* snappy/zlib/lz4数据压缩,解压缩* jemalloc/tcmalloc高效内存分配器,尤其多线程场景* jerasure Reed Solomon编解码,给存储系统实现erasure code* murmurhash…实现hash摘要* crc32数据存储或传输时的数据校验* cJSON解析json格式配置文件* libBSON JSON序列化/反序列化,MongoDB使用这种格式存储数据* boost功能丰富的C++基础库,轻度使用,C++11/14后基本不用了。* libRedis redis是一个数据库服务,并不是单独的库,但其代码精简,质量非常高,里面很多代码都可以拿出来直接复用,比如网络,各种数据结构的实现。

ProtoBuf安装及避坑指南

在安装ProtoBuf前,确保g++为较新版本,若安装过程中遇到问题,尝试安装其他版本,使用`make uninstall`卸载源码安装的版本。在使用VSCode开发时,可能出现头文件检测不到的问题,这时需要查看编译器是否报错,而非仅依赖插件提示。以下为Linux环境下ProtoBuf的安装步骤。

安装依赖库:`autoconf`、`automake`、`libtool`、`curl`、`make`和`g++`,对于Ubuntu用户,使用`sudo apt-get install`命令安装,对于CentOS用户,使用`sudo yum install`命令安装。访问GitHub下载ProtoBuf的指定版本,如v21.11,选择`protobuf-all-21.11.zip`进行下载。在Windows环境下下载后,通过xshell的`rz`指令将文件传输至Linux系统。解压zip包后,进入目录。

执行以下命令进行安装:`./configure`,根据需要选择安装方式。若在`configure`中选择第一种方式,直接执行`make`和`make install`即可完成安装。若选择第二种方式,修改了安装目录,还需在`/etc/profile`中添加相关配置信息,最后执行`source/etc/profile`使配置生效。安装完成后,通过`protoc--version`检查版本信息,显示版本号表示安装成功。

进行ProtoBuf测试示例:创建两个文件`test.cc`和`contacts.proto`。`test.cc`文件包含使用ProtoBuf的示例代码,而`contacts.proto`文件定义了相应的数据结构和字段。执行相关语句进行测试,验证ProtoBuf的安装和使用是否正常。

阅读剩余
THE END