Protobuf协议,全称:Protocol Buffer 它跟JSON,XML一样,是一个规定好的数据传播格式。不过,它的序列化和反序列化的效率太变态了……来看看几张图你就知道它有多变态。 protobuf 协议 操作步骤:定义protobuf 文件,并使用protoc.exe 编译 为java文件。 protoc.exe 下载地址 https://github.c
转载
2023-06-29 09:30:50
189阅读
# Java Protobuf 原理及示例代码
Protobuf(Protocol Buffers)是 Google 开发的一种数据序列化格式,用于结构化数据的序列化。它是一种二进制协议,旨在提供高效的数据交换和存储。
## 1. Protobuf 原理
### 1.1 数据结构定义
在 Protobuf 中,我们首先需要定义数据结构。这些数据结构定义在一个 `.proto` 文件中,使用
原创
2023-08-06 06:28:22
88阅读
一、参考资料深入 ProtoBuf - 简介 - 简书深入 ProtoBuf - 编码 - 簡書Java高并发核心编程(卷1):NIO、Netty、Redis、ZooKeeper-尼恩编著-微信读书https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java/3.19.1https://
原创
2022-07-28 14:25:05
243阅读
文章目录前言相关应用场景一、ProtoBuf 反射原理概述1、获取message和service的属性和方法1.1 使用protoc将proto文件生成.h和.cc文件1.2 只使用proto文件,不使用protoc进行编译1.3 非 .proto 文件 ,转换成.proto2、调用message的属性和方法2.1根据type name反射自动创建实例3、通过实例instance 的反射接口re
转载
2023-09-05 11:17:16
342阅读
Protocal Buffers(简称protobuf)是Google的一项技术,用于结构化的数据序列化、反序列化。Protobuf的使用比较广泛,常用于RPC 系统(Remote Procedure Call Protocol System)和持续数据存储系统。其主要优点是空间开销小和性能比较好,类似于XML生成和解析,但protobuf的效率高于XML,不过protobuf生成的是字节码,可读
转载
2023-11-09 01:32:40
115阅读
# Protobuf 原理及其在 MQTT 和 Java 中的应用
在当今的微服务架构中,高效的数据序列化和消息传递机制变得至关重要。本文将介绍协议缓冲区(Protocol Buffers,简称 Protobuf)、MQTT(消息队列遥测传输)协议以及如何在 Java 中利用这两者的组合。
## 什么是 Protobuf?
Protobuf 是 Google 开发的一种语言中立、平台中立、可
参考:https://developers.google.cn/protocol-buffers/docs/javatutorial 目录1、定义protobuf 文件2、编译你的 Protocol Buffers3、ProtoBuf API 枚举和嵌套类生成器和消息1、定义protobuf 文件定义一个protobuf 格式的文件,addressbook.proto
转载
2023-09-10 23:33:31
14阅读
ProtoBuf—— 反射原理解析ProtoBuf—— 反射原理1、反射原理1.1、反射机制的背景1.2、定义1.3、反射原理关注的一些问题1.4、反射原理的优势和应用2、ProtoBuf反射原理——获取并改造 元信息2.1 、 .proto 文件2.2 、 反射原理过程2.3 、 反射相关的类和API2.3.1、google::protobuf::Message2.3.2、 google::p
转载
2024-01-08 21:16:28
88阅读
1、概述 1.1前言在移动互联网时代,手机流量、电量是最为有限的资源,而移动端的即时通讯应用无疑必须得直面这两点。 解决流量过大的基本方法就是使用高度压缩的通信协议,而数据压缩后流量减小带来的自然结果也就是省电:因为大数据量的传输必然需要更久的网络操作、数据序列化及反序列化操作,这些都是电量消耗过快的根源。 当前即时通讯应用中最热门的通信协议无疑就是Google的Protobuf了,基于它的优秀表
转载
2024-05-04 15:17:39
79阅读
我们先看一下JAVA反射的概念:
主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。
反射是Java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高!
说的很学术,看的也有点晕
转载
2023-10-23 12:42:23
57阅读
定义一个消息类型先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式来定义消息类型的.proto文件了:1234567syntax = "proto3";
message SearchRequest {
string query = 1;
int32 page_nu
之前那篇文章,讲过Json里的序列化结果为: { "name":"chenpp","age":21} -- 一共26个字节,而想要将其进行进一步压缩,就需要去掉一些冗余的字节思路:1)能不能去掉定义属性(约定1=name,2=age) 约定了字段,约定了类型 去除分隔符(引号,冒号,逗号之类的)2)压缩数字,因为日常经常使用到的都是一些比较小的数字,一共int占4个字节,但实际有效的字节数没有那么
转载
2024-01-06 22:32:11
133阅读
1.概述介绍ProtoBuf 是google团队开发的用于高效存储和读取结构化数据的工具。什么是结构化数据呢,正如字面上表达的,就是带有一定结构的数据。比如电话簿上有很多记录数据,每条记录包含姓名、ID、邮件、电话等,这种结构重复出现。XML、JSON 也可以用来存储此类结构化数据,但是使用ProtoBuf表示的数据能更加高效,并且将数据压缩得更小。原理ProtoBuf 是通过ProtoBuf编译
转载
2023-09-01 20:35:14
153阅读
zigzag编码实现原理
原创
2023-08-12 10:03:55
355阅读
介绍Google Protocol Buffer(简称Protobuf)是一种轻便、高效的结构化数据存储格式,平台无关、语言无关、可扩展、可用于通讯协议和数据存储等领域。Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。json\xml都是基于文本格式,protobuf是
转载
2023-09-18 03:10:17
141阅读
文章目录使用举例特性说明应用场景注意事项使用举例Protobuf的使用和原理特性说明语言无关性、序列化、反序列化性能好向后兼容性好编程模式友好、良好的文档和示例动态编译,Importer应用场景注意事项
原创
2021-04-15 09:56:00
295阅读
一、简介Protocol Buffers是谷歌定义的一种跨语言、跨平台、可扩展的数据传输及存储的协议,因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小,解析效率高。一条消息用protobuf序列化后的大小是json的10分之一。类似的序列化框架还有Thrift、avro。thrift和avro都提供rpc服务和序列化,而protocol buffer只
转载
2023-09-08 13:07:16
90阅读
Protobuf 的优点更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。只需使用 Protobuf 对数据结构进行一次描述,即可利用各种不同语言或从各种不同数据流中对你的结构化数据轻松读写。即“向后”兼容性好,人们不必破坏已部署的、依靠“老”数据格式的程序就可以对数据结构进行升级。这样您的程序就可以不
转载
2024-04-07 11:57:21
44阅读
# 从 Java Protobuf 到 Protobuf 转换的完整指南
在现代的软件开发中,Protocol Buffers(protobuf)是一个高效的序列化工具,可以帮助开发者在不同的系统和语言之间更好地传输和存储数据。在Java中使用protobuf,我们经常会遇到将一个protobuf消息转换为另一个protobuf消息的需求。本文将指导你如何实现这个过程。
## 流程概述
我们
原创
2024-10-09 04:30:07
43阅读
protobuf详解 一、什么是protobufprotobuf全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。protobuf是一种灵活高效的独立于语言平台的结构化数据表示方法。在通信协议和数据存储等领域中使用比较多。protobuf对于结构中的每个成员会提供set系列函数和get系列函数。与XML相比,proto
转载
2023-10-01 17:20:54
81阅读