- 博客(132)
- 收藏
- 关注
原创 利用ProtoBuf 实现网络版通讯录
本文介绍了一个基于Protobuf实现的网络版通讯录系统,包含客户端和服务端的交互设计。系统提供联系人增删查功能,使用cpp-httplib库搭建HTTP通信,通过Protobuf进行数据序列化。文章详细说明了环境配置要求(包括CentOS下的GCC升级方案)、接口协议设计(4类RESTful接口)以及.proto文件的定义(包含8个消息结构)。客户端代码展示了菜单驱动的交互界面,支持新增、删除、查询联系人等操作,实现了完整的通讯录管理功能。该系统可作为Protobuf在网络通信中的典型应用案例。
2025-06-06 14:16:20
984
原创 技术栈ODB的介绍和使用
ODB是一个开源的C++对象关系映射(ORM)框架,它允许开发者通过纯C++对象模型与关系型数据库交互,无需直接编写SQL语句。其核心优势包括简化代码、类型安全、支持复杂数据关系和跨平台支持。ODB通过代码生成实现零运行时开销,提供自动SQL生成、继承多态支持、高性能优化和完整的事务管理。工作原理包括定义持久化类、生成数据库代码、应用集成和运行时操作。安装过程涉及build2工具链、odb-compiler、运行时库以及MySQL相关配置。
2025-06-05 14:26:02
1146
原创 proto 3 语法详解 ----(2)
本文介绍了Protocol Buffer消息类型的更新规则和保留字段(reserved)机制。更新消息类型时应遵循以下规则:不修改现有字段编号;移除字段时需保留字段编号;某些数据类型可相互兼容转换。保留字段机制通过标记已删除字段的编号或名称为reserved,防止未来被误用,避免数据损坏等问题。文章通过通讯录实例验证了错误删除字段可能造成的数据损坏,并展示了正确使用reserved字段的方法。最后提供了服务端和客户端的示例代码,演示了如何在实践中应用这些规则。
2025-06-04 14:21:33
818
原创 proto 3 语法详解 ----(1)
本文介绍了Protobuf消息字段规则和消息类型的使用方法。主要内容包括:字段规则有singular(默认)和repeated(数组)两种类型,示例展示了如何在通讯录模型中添加repeated字段表示多个电话号码。消息类型支持嵌套定义和单独定义两种方式,并演示了如何引用其他proto文件中的消息类型。通过通讯录2.0的案例,展示了如何使用repeated字段和嵌套消息类型构建完整模型,包括编译生成代码和编写实现逻辑。提供了C++代码示例,展示如何操作repeated字段(如add_方法)和使用Pr
2025-06-03 08:23:45
393
原创 技术栈ES的介绍和使用
Elasticsearch(ES)是一款开源的分布式全文搜索引擎,基于Apache Lucene构建,能够处理PB级数据并提供近实时搜索分析。其诞生背景是为解决传统数据库在大数据量下的性能瓶颈,通过有序存储、索引分离和数据压缩等创新方法实现高效检索。ES具备高扩展性、分布式存储、实时搜索等特点,支持多种插件扩展,可运行于上百台服务器集群。安装部署简便,包含ES核心、Kibana可视化工具及客户端组件。核心概念包括集群(多节点集合)、节点(单个服务器)、索引(文档集合)、文档(数据单元)等,与传统数据库
2025-05-29 14:40:01
1187
原创 初识 ProtoBuf
ProtoBuf是一种高效的结构化数据序列化方法,由Google开发,具有跨语言、跨平台特性。相比XML更小更快,支持数据结构的扩展和兼容性。使用流程包括:编写.proto文件定义数据结构,用protoc编译器生成接口代码,在项目中调用接口实现序列化和反序列化。快速上手示例为通讯录1.0项目,定义包含姓名(name)和年龄(age)字段的PeopleInfo消息。proto3语法需在文件首行声明,并建议使用包名避免命名冲突。字段命名采用全小写下划线格式,需指定唯一编号。
2025-05-27 17:55:21
755
原创 ProtoBuf 安装
本文详细介绍了ProtoBuf在Windows和Linux系统下的安装步骤。Windows安装流程包括:1)从GitHub下载编译器压缩包并解压;2)将bin目录添加至系统环境变量;3)通过命令行验证安装。Linux安装则需:1)安装依赖库;2)下载对应语言版本的源码包;3)执行autogen.sh和configure脚本;4)进行编译和安装(约30分钟);5)可能需要调整swap分区解决测试问题;6)若自定义安装路径还需配置环境变量。最后通过protoc --version命令验证安装是否成功。两种系统安
2025-05-26 18:21:14
933
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人