站长网 语言 Protobuf序列化这么强,为什么不花五分钟掌握一下呢?

Protobuf序列化这么强,为什么不花五分钟掌握一下呢?

一、为什么要使用protobuf? 使用protobuf的原因肯定是为了解决开发中的一些问题,那使用其他的序列化机制会出现什么问题呢? (1)java默认序列化机制:效率极低,而且还能不能跨语言之间共享数据。 (2)XML常用于与其他项目之间数据传输或者是共享数据,但是

一、为什么要使用protobuf?

使用protobuf的原因肯定是为了解决开发中的一些问题,那使用其他的序列化机制会出现什么问题呢?

(1)java默认序列化机制:效率极低,而且还能不能跨语言之间共享数据。

(2)XML常用于与其他项目之间数据传输或者是共享数据,但是编码和解码会造成很大的性能损失。

(3)json格式也是常见的一种,但是在json在解析的时候非常耗时,而且json结构非常占内存。

但是我们protobuf是一种灵活的、高效的、自动化的序列化机制,可以有效的解决上面的问题。

二、如何使用protobuf

protobuf这么优秀使用起来也是非常的简单,我们可以给出其主要的三个步骤,然后使用一个基本的案例去实现一下。

(1)定义.proto文件:我们在这个文件中描述我们序列化的信息,类似于bean类。

(2)根据.proto生成对应的类文件,上面这个proto就像是一个模板,现在我们要根据这个模板创建出一个java类。

(3)序列化。

有了这个基本的步骤我们我们就具体去实现一下:

1、下载安装protobuf

第一步:下载解压

我的电脑是windows10,因此这里给出在windows下的使用,linux下面使用我也将在后续文章推出。我们首先下载protobuf(github上搜索protobuf,有各种语言可供选择)。选择protoc-3.9.0-win64.zip。下载完成之后解压到D:/protobuf目录下面就好了。

第二步:配置环境变量

也就是将D:\protobuf\protoc-3.9.0-win64\bin配置到path环境变量里面。

第三步:验证是否安装成功

最后我们可以在cmd中输入protoc –version验证一下,是否成功。

OK,到这里我们就安装好了。

2、编写proto文件

之前我们说过proto 文件非常类似java的bean。在这里我们在bin目录下新建一个Person.proto文件(和proto.exe)。输入下列内容:

syntax="proto3";  

option java_package = "com.fdd.protobuf";    

option java_outer_classname = "PersonProto";    

message Person  {  

  string name = 1; 

  int32 age = 2; 

}   

我们解释一些我们都写了什么

(1)第一行有一个proto3,他表示的是protobuf的语法版本,就类似于jdk1.7和jdk1.8的概念。需要在第一行指定。默认使用的是proto2。

(2)java_package:表示的是java包,不指定就使用 package.生成的类会放到该package下。这里表示把生成的类存放在com.fdd.protobuf包下面。

(3)java_outer_classname:我们说过.proto文件,要生成对应的类,这个参数就指定输出什么类名。这里表示生成的类名是PersonProto。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/biancheng/yuyan/2021/0523/4131.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部