Java中使用Protobuf
Protobuf是Google推出的跨语言的序列化方式,是gRpc中消息的序列化方式。protobuf是高性能的序列化方式,跨语言,序列化后数据尺寸小,序列&反序列化速度快,唯一可能产生的不便就是需要用户编写.proto文件来定义接口和消息格式。
导入jar包
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.5.1</version>
</dependency>
一、maven插件配置
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.5.0.Final</version>
</extension>
</extensions>
<plugins>
<!-- protobuf 编译组件 -->
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.1</version>
<extensions>true</extensions>
<configuration>
<protoSourceRoot>${project.basedir}/src/main/proto</protoSourceRoot>
<protocArtifact>com.google.protobuf:protoc:3.2.0:exe:${os.detected.classifier}</protocArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
二、macOs上的命令生成
安装protoc生成工具
下载地址:https://github.com/google/protobuf/releases
下载之后执行命令个 tar zxvf protobuf-xxx.zip
执行命令 ./configure
执行命令 sudo make
执行命令 sudo make install
执行命令 protoc查看是否安装成功
执行 protoc --java_out path_proto_file dest_java_source_dir 将文件编译成对应目录下
PS:
Protobuf需要编写.proto文件, protostuff是和Protobuf相同的内核的序列化方式,不同的是,protostuff是自动生成schema,不需要用户来编写.proto文件,使用起来比较方便,有兴趣的可以自行Google。