Protocol Buffers使用分析

ProtocolBuffers是Google的一种语言和平台中立的序列化机制,它比XML和JSON更小巧、快速且简单。其二进制格式虽然可读性较差,但在性能和效率上有显著优势,常用于RPC通信中的短生命周期场景。文章通过示例展示了如何定义服务接口、请求和响应,并生成protobuf文件。
摘要由CSDN通过智能技术生成

简介

Protocol Buffers(协议缓冲区)是一种语言中立、平台中立的可扩展机制,用于序列化结构化数据,类似于XML和json,但protobuf更小巧,更快速,更简单。

数据格式与优缺点

xml:

<person>
    <name>xx</name>
    <age>24</age>
</person>

json:

{
    "name":"xx",
    "age":24
}

protobuf(使用二进制表示):

[10 6 69 108 108 105 111 116 16 24]

优点:
1、性能好效率高,序列化协议考虑字节码流大小与反序列化的cpu资源消耗。
2、短生命周期的rpc中更广泛使用。短小快
3、支持多种语言。

缺点:
1、二进制可读性差、缺乏描述(主要)
2、通用性比较差

例子说明

技术实现

//使用协议
syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.jidaojiuyou.demo";
option java_outer_classname = "RuleProto";
//包名称
package api.billingrule.v1;
//服务接口.定义请求参数和相应结果	
service Rule {
  rpc Charge (ChargeRequest) returns (ChargeReply) {}
}

//请求提
message ChargeRequest {
  string beginTime = 1;
  string endTime = 2;
  string ruleId = 3;
}

//相应体
message ChargeReply {
  double fee = 1;
}
生成特定的Protobuf文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值