当前位置: 首页 > news >正文

自己动手创建一个公司网站手机 网站开发软件

自己动手创建一个公司网站,手机 网站开发软件,双鸭山网站建设,局网站建设进入前十名手写RPC——数据序列化工具protobuf Protocol Buffers(protobuf)是一种用于结构化数据序列化的开源库和协议。下面是 protobuf 的一些优点和缺点: 优点: 高效的序列化和反序列化:protobuf 使用二进制编码&#xff0c…

手写RPC——数据序列化工具protobuf

Protocol Buffers(protobuf)是一种用于结构化数据序列化的开源库和协议。下面是 protobuf 的一些优点和缺点:

优点:

  • 高效的序列化和反序列化:protobuf 使用二进制编码,相比于文本格式(如 JSON 或 XML),具有更高的序列化和反序列化性能。它使用紧凑的二进制格式,节省了存储空间和网络带宽。

  • 小巧的消息体积:protobuf的编码格式非常紧凑,消息体积较小。这对于需要在网络上传输大量数据或存储大量数据的场景非常有利,减少了存储和传输的成本。

  • 跨语言支持:protobuf 支持多种编程语言,包括 C++, Java, Python, Go 等,使得不同语言的应用程序能够相互通信和交换数据。protobuf 提供了自动生成的代码,使得在不同语言之间进行数据传输更加方便。

  • 可扩展性:protobuf 的消息格式是可扩展的,允许向已有的消息类型添加新的字段或修改现有字段,而不会破坏向后兼容性。这使得在数据模型发生变化时,能够平滑地升级和演化。

  • 易于维护和更新:由于 protobuf 使用 IDL(接口定义语言)来定义消息格式,使得代码的维护和更新更加容易。只需更新 IDL 文件,并重新生成代码,就能够同步更新所有相关的代码。

缺点:

  • 不适合人类可读:protobuf 使用二进制编码,不像 JSON 或 XML 那样易于人类可读和调试。这对于调试和开发过程中的可视化和人类可读性要求较高的场景可能不够友好。

  • 需要预先定义消息格式:protobuf 要求在使用之前,需要先定义消息格式,并生成对应的代码。这增加了一些额外的步骤和工作量,相比于一些动态的数据格式,如 JSON,可能稍显繁琐。

  • 不支持动态架构:protobuf 的消息格式在定义后是静态的,不支持在运行时动态地修改和扩展消息。如果需要在运行时根据需要动态地修改数据结构,protobuf可能不是最佳选择。

总体而言,protobuf 是一种高效、跨语言和可扩展的数据序列化和通信协议,适用于对数据大小和性能要求较高的场景。它在分布式系统、网络通信和存储等领域得到广泛应用。然而,根据具体的使用场景和需求,仍需综合考虑其优点和缺点,选择合适的数据格式和通信协议。

安装protobuf

这里以ubuntu为例子

sudo apt install  libprotobuf-dev

使用

定义一个rpc.proto文件

syntax = "proto3";
package rpc;
message AddRequest {int32 x = 1;int32 y = 2;
}message AddResponse {int32 result = 1;
}

采用下面的指令转换为C++代码

protoc --cpp_out=. rpc.proto

一个简单的使用例子

#include <iostream>
#include <string>
#include "rpc.pb.h"using namespace std;
using rpc::AddRequest;
using rpc::AddResponse;int main() {// 构建请求消息AddRequest request;request.set_x(5);request.set_y(3);// 将消息进行序列化成字符串存储至requestStrstring requestStr;request.SerializeToString(&requestStr);//对字符串进行解析AddRequest req;req.ParseFromString(requestStr);AddResponse response;response.set_result(request.x() + request.y());cout<<"result:"<<response.result()<<endl;return 0;
}

输出结果如下:
在这里插入图片描述
可见我的github仓库:https://github.com/mulinhu/CPPer/tree/main/network_demo/proto_demo

http://www.hyszgw.com/news/64476.html

相关文章:

  • 虚拟主机和网站空间海安县城乡建设局网站
  • 公司想做个网站服装详情页设计
  • 织梦制作手机网站模板免费下载网站建设sem怎么做
  • 深圳做h5网站郑州短视频拍摄
  • 广东网站备案进度查询知乎类 wordpress
  • 企业网站规划要求怎样做网站国外
  • 网站开发者工作内容h5做网站用什么软件
  • 中山网站制作网页wordpress 注册 填写密码
  • 网站容量多地优化防控举措方便民众生活
  • 电子商务网站建设结业论文网站建设按什么收费
  • 网站建设领导小组邢台短视频推广
  • 新乡做网站价格网站建设实训个人总结3000字
  • 网站功能插件怎样注册代理记账公司
  • 做一个网站的费用构成网上商城网站设计
  • 我做网站了 圆通莱芜都市网二手车租车
  • 哪个浏览器可以看禁止网站网站做收录是什么意思
  • 网站建设的客户需求分析调研表海外免费服务器
  • 做任务领取礼品的网站网站内部推广
  • 学校网站开发研究的意义和目的网络安全培训机构排名
  • 网站建设定义网站运营与推广论文
  • 建站 报价安徽省住房和城乡建设厅网站6
  • 好的外贸网站的特征秦皇岛背后六个老大
  • shopify建站公司医院做网站备案都需要什么
  • 介绍小说的网站模板手工制作灯笼的步骤
  • 做兼职有哪些网站苏州网站制作方法
  • 装修公司资质查询官方网站图片外链
  • 课程资源网站开发 jsp个人网页html代码
  • 昆明网站建设一条龙重庆网站排名提升
  • 如何模仿网站模板上海网站托管
  • 重庆做网站建设企业代写文章兼职