gpt4 book ai didi

Google Protocol Buffer 环境搭建与使用案例

转载 作者:知者 更新时间:2024-03-12 23:38:22 25 4
gpt4 key购买 nike

一 下载 protoc 工具

protoc 的下载地址:https://dbojg6dv.fast-github.tk/-----https://github.com/protocolbuffers/protobuf/releases/tag/v3.6.0

下载文件:protoc-3.6.0-win32.zip

下载完后,将 protoc.exe 加入到环境变量中。

二 相关依赖

<dependency>

<groupId>com.google.protobuf</groupId>

<artifactId>protobuf-java</artifactId>

<version>3.5.1</version>

</dependency>

<dependency>

<groupId>com.google.protobuf</groupId>

<artifactId>protobuf-java-util</artifactId>

<version>3.5.1</version>

</dependency>

三 点睛

Google Protocol Buffer 简称 Protobuf,主要用于消息(message)的编码和解码,从而协助用户实现 RPC。其核心思想是编写一个通用的、用于存储数据的 message 文件,用于消除程序语言对特定数据的依赖。例如,Java 是用“类”传递数据,而 Java 类的编写就密切依赖 Java 语言,即 Python 等其他语言不能直接使用 Java 类。而 Protobuf 就可以将数据存储在通用的 message 文件中,任何语言在使用时,只需要将 message 再转换成符合自己语言的数据结构(如 Java 中的类)即可。

使用 Protobuf 实现跨语言数据传递的基本步骤如下:

1 将 message 以规定的数据结构编写到 .proto 文件中。

2 根据 .proto 文件,转换成特定语言存储数据的数据结构,如 Java 中的类。

3 根据特定语言,将生成的数据结构编译为各个语言通用的中间件形式(byte 数组),如 Java 编译后的 .class 文件。

4 通过网络编程(如 Socket、Netty),将中间件发送给远端。

5 远端接收后,再将中间件翻译成自己需要的文件格式(如 .cpp、.py 等)。

四 Protobuf 数据传递流程

五 编写 .proto 文件

syntax = "proto2" ;

package com.cakin.protobuf ;

option optimize_for = SPEED ;

option java_package = "com.cakin.protobuf.diff" ;

option java_outer_classname = "StudentMessage" ;

message Student

{

required string name = 1 ;

optional int32 age = 2 ;

}

六 将 .proto 翻译成特定语言存储数据的数据结构

如果要将 message.proto 翻译成 .java 文件,并且将 .java 文件保存在 javapath 目录中,可以通过以下命令实现
protoc --java_out=javapath message.proto

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com