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 等)。
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 ;
}
如果要将 message.proto 翻译成 .java 文件,并且将 .java 文件保存在 javapath 目录中,可以通过以下命令实现
protoc --java_out=javapath message.proto
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/chengqiuming/article/details/125035759
内容来源于网络,如有侵权,请联系作者删除!