gRPC | 快速上手Proto(搭建开发环境篇)

2,114 阅读3分钟

背景

最近架构师搞了个新架构,牛逼的不行~

牛逼牛逼

吹完牛逼,我赶紧去看了看架构师写的代码,好家伙,gRPC 是个什么东东?然后我 Google,百度,花了两三天的时间,终于把它给理清楚了。

tan9

Protocol buffers

Protocol buffers 是谷歌与语言无关、平台无关、一套可扩展的机制,用于序列化结构化数据。相对于 XML,它更小、更快、更简单。 只需定义数据的结构化方式,然后就可以使用特殊生成的源代码,使用各种语言轻松地向各种数据流读写结构化数据。

没错,官网是这样介绍的,依然的晦涩难懂。给一个 proto 语言的链接,如下,打不开很正常。

Protocol buffers 的官方教程:Language Guide

1.下载安装 Protocol buffers

首先安装 protocol 编译器,protocol 编译器用来编译 .proto 文件,下面是 Protocol buffers Compiler 在 Github 上的地址。

Protocol buffers Compiler (Protocol buffers 编译器下载):Protocol Buffers v3.15.6

目前 protocol compiler 最新的版本是 v3.15.6,我在 windows 上开发,所以下载已经编译好的 windows版本。

image

下载解压之后,目录是这样的。

接着我们配置一下bin目录的环境变量,就可以直接在命令行里使用 protoc 来编译 .proto 文件了。配置成功后,敲入 protoc 你会看到这样的界面,说明配置成功了。

2.编译 proto 文件

proto 目录下,使用如下的命令行,编译 addressbook.proto 文件生成对应的 java 类。

protoc --java_out=../java  ./addressbook.proto
// addressbook.proto
syntax = "proto3";

package cn.blogss.tutorial;

import "google/protobuf/timestamp.proto";

option java_package = "cn.blogss.tutorial";
option java_outer_classname = "AddressBookProto";

message Person {
  string name = 1;
  int32 id = 2;
  string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    string number = 1;
    PhoneType type = 2;
  }

  repeated PhoneNumber phones = 4;

  google.protobuf.Timestamp last_updated = 5;
}

message AddressBook {
  repeated Person people = 1;
}

我的demo演示项目结构如下,AddressBookProto 是由 addressbook.proto 编译而来的。

目录结构

发现类有红线是因为我们还需要在pom.xml中添加protocol buffer基础库的依赖

 <dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java-util</artifactId>
    <version>3.15.6</version>
</dependency>

以上整个步骤简单概括就是:

  1. 按照 proto3 语法编写 .proto 文件
  2. 使用 proto 编译器编译 .proto 文件生成相应的编程语言文件
  3. 之后就可以用生成的文件来愉快的进行数据的读写了

快乐

上面介绍了 Protocol Buffer 的下载与编译生成 Java 类过程,这是进行 proto 开发的第一步,至于 .proto 的语法和高级使用这里我不再介绍,上面给出的网站有丰富的教程和指导。

3.在 IDEA 中安装 Protocol Buffers Editor 插件

我们可以在 IDEA 中安装这个插件,方面编写 .proto 程序,这个插件主要功能是方便我们进行 proto 文件的编写,功能强大。

  1. 支持proto2和proto3语法级别
  2. 语法高亮显示
  3. 语义分析
  4. 引用和导航
  5. 编辑器增强(补全、大括号匹配等)
  6. ......

不知道如何安装插件?在 IDEA 的导航栏上,找到

File->Settings...->Plugins->Marketplace

搜索框中输入 Protocol Buffer Editor 搜索到了然后安装就行了。当然,新版的 IDEA 检测到你在编写 .proto 文件,也会很智能的提示你安装这个插件。

总结

本文没有任何关于 proto 语法的介绍,目的是为了让大家快速搭建起 proto 的开发环境。在接下来的系列,我会详细的讲解 proto 语法和各种新手需要注意的地方。项目代码已同步到 码云 Gitee:gRPC,需要的自取。

如果你对我感兴趣,请移步到 blogss.cn ,或关注公众号:程序员小北,进一步了解。

  • 如果本文帮助到了你,欢迎点赞和关注,这是我持续创作的动力 ❤️
  • 由于作者水平有限,文中如果有错误,欢迎在评论区指正 ✔️
  • 本文首发于掘金,未经许可禁止转载 ©️