0
0

More than 1 year has passed since last update.

gRPCを使ってあそんでみる 環境構築編

Last updated at Posted at 2022-10-18

gRPCを使ってあそんでみるの目的

ログデータを永続化するgRPCサービスを立ち上げログを記録する。

今回のお題

IDL(Interface Description Language)からRPC用のJavaソースを生成する環境を構築する。

最後にJarファイルを作成する。

■事前環境

・Windows10 バージョン21H2
・IntelliJ IDEA 2022.1.4(Community Edition)
・OpenJDK Runtime Environment Zulu17.36+17-CA (build 17.0.4.1+1-LTS)
・Gradle

1.新規プロジェクトを作成

2.IDLコンパイル用Gradleタスクの追加

2.1.com.google.protobufプラグインを追加

build.gradleの必要箇所を抜粋
plugins {
    id 'java'
    id "com.google.protobuf" version "0.9.1"
}

2.2.Gradleタスクに追加されていること確認

Gradleプロジェクトを再ロード後、6つのタスクが追加されている事を確認。

3.IDLのコンパイル環境を構築

3.1.IDLコンパイラーとJava用クラスファイル生成プラグインを追加

build.gradleの必要箇所を抜粋
protobuf {
    protoc { artifact = "com.google.protobuf:protoc:3.21.7" }
    plugins {
        grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.50.0" }
    }
    generateProtoTasks {
        all()*.plugins { grpc {} }
    }
}

3.2.依存関係の追加

Java9以降には、'javax.annotation:javax.annotation-api:1.3.2'が必要となります。

build.gradleの必要箇所を抜粋
dependencies {
    implementation 'io.grpc:grpc-netty-shaded:1.49.2'
    implementation 'io.grpc:grpc-protobuf:1.49.2'
    implementation 'io.grpc:grpc-stub:1.49.2'
    implementation 'javax.annotation:javax.annotation-api:1.3.2'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0'
}

4.IDLファイルの作成

src/main/protoの配下に以下のファイルを作成する。

logging.proto
syntax = "proto3";

option java_multiple_files = true;
option java_package = "example.grpc.logging";
option java_outer_classname = "LoggingProto";

package logging;

service Logging {
  rpc record (LoggingRequest) returns (LoggingResponse) {}
}

message LoggingRequest {
  string status = 1;
  string message = 2;
}

message LoggingResponse {
  string status = 1;
  string message = 2;
}

5.IDLよりJavaクラスファイルを生成

GradleののgenerateProtoタスクを実行。
gRPC用のJavaファイルが build/generated 以下に生成される。

参考

今回、利用したソース一式です。
https://github.com/shigemax999/sample-grpc-logging.git

次回

gRPCを使ってあそんでみる サービス起動編です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0