Slide 1

Slide 1 text

Spring gRPC について 2025-01-30 関ジャバ'25 1月度 BABY JOB株式会社 浅野 正貴 (@mackey0225)

Slide 2

Slide 2 text

Spring gRPC について 自己紹介 名前:浅野 正貴 所属:BABY JOB株式会社 最近はインフラや SRE がメイン X: @mackey0225 明けましておめでとうございます

Slide 3

Slide 3 text

Spring gRPC について 先に諸注意 ● gRPC そのもの説明はしません(というか、できません) ● 雰囲気重視です ○ 正確性や実際にどうなんは各自でお願いします ○ 間違ってたら「おくすり飲めたね」に包んで伝えて ○ LT(5 分)だと限界がある ● 後半でコードが出ますが、字が小さいです ○ 資料は公開しますので、後でじっくり見てください

Slide 4

Slide 4 text

それはそうと、

Slide 5

Slide 5 text

今年から 関ジャバのスタッフに なりました!

Slide 6

Slide 6 text

今年から 関ジャバのスタッフに なりました! とはいえ、ゴールではなくスタート なにとぞよろしくおねがいしますー

Slide 7

Slide 7 text

てなわけで、本題!

Slide 8

Slide 8 text

Spring gRPC について Spring gRPC とは(1) ● Spring プロジェクトのひとつ ○ ただし、Experimental Project ● 公開は 2024 年 9 月 ● 現在最新は 0.3.0 ○ GitHub のタグは 0.2.0 ○ ドキュメントは 0.4.0-SNAPSHOT

Slide 9

Slide 9 text

Spring gRPC について Spring gRPC とは(1) ● Spring プロジェクトのひとつ ○ ただし、Experimental Project ● 公開は 2024 年 9 月 ● 現在最新は 0.3.0 ○ GitHub のタグは 0.2.0 ○ ドキュメントは 0.4.0-SNAPSHOT https://github.com/spring-projects-experimental

Slide 10

Slide 10 text

Spring gRPC について ● Spring プロジェクトのひとつ ○ ただし、Experimental Project ● 公開は 2024 年 9 月 ● 現在最新は 0.3.0 ○ GitHub のタグは 0.2.0 ○ ドキュメントは 0.4.0-SNAPSHOT Spring gRPC とは(1) https://github.com/spring-projects-experimental/spring-grpc/activity

Slide 11

Slide 11 text

Spring gRPC について ● Spring プロジェクトのひとつ ○ ただし、Experimental Project ● 公開は 2024 年 9 月 ● 現在最新は 0.3.0 ○ GitHub のタグは 0.2.0 ○ ドキュメントは 0.4.0-SNAPSHOT Spring gRPC とは(1) https://mvnrepository.com/artifact/org.springframework.grpc/spring-grpc

Slide 12

Slide 12 text

Spring gRPC について ● Spring プロジェクトのひとつ ○ ただし、Experimental Project ● 公開は 2024 年 9 月 ● 現在最新は 0.3.0 ○ GitHub のタグは 0.2.0 ○ ドキュメントは 0.4.0-SNAPSHOT Spring gRPC とは(1) https://github.com/spring-projects-experimental/spring-grpc/tags

Slide 13

Slide 13 text

Spring gRPC について ● Spring プロジェクトのひとつ ○ ただし、Experimental Project ● 公開は 2024 年 9 月 ● 現在最新は 0.3.0 ○ GitHub のタグは 0.2.0 ○ ドキュメントは 0.4.0-SNAPSHOT Spring gRPC とは(1) https://docs.spring.io/spring-grpc/reference/

Slide 14

Slide 14 text

Spring gRPC について Spring gRPC とは(2) 先週、こんな記事が、、、 https://blogs.vmware.com/tanzu/this-month-in-spring-january-2025/

Slide 15

Slide 15 text

Spring gRPC について Spring gRPC とは(2) 先週、こんな記事が、、、 https://blogs.vmware.com/tanzu/this-month-in-spring-january-2025/

Slide 16

Slide 16 text

Spring gRPC について Spring gRPC とは(2) 先週、こんな記事が、、、 https://blogs.vmware.com/tanzu/this-month-in-spring-january-2025/ 手順はシンプルで、proto フォルダに gRPC のサービ ス定義を記述するだけです。

Slide 17

Slide 17 text

Spring gRPC について Spring gRPC とは(2) 先週、こんな記事が、、、 https://blogs.vmware.com/tanzu/this-month-in-spring-january-2025/ まず start.spring.io にアクセスし、gRPC を選択して プロジェクトを生成します。 その後、選択したビルドツールでプロジェクトをビル ドすると、自動的にサービスのスタブが生成されま す。

Slide 18

Slide 18 text

Spring gRPC について Spring gRPC とは(2) 先週、こんな記事が、、、 https://blogs.vmware.com/tanzu/this-month-in-spring-january-2025/ まず start.spring.io にアクセスし、gRPC を選択して プロジェクトを生成します。 その後、選択したビルドツールでプロジェクトをビル ドすると、自動的にサービスのスタブが生成されま す。

Slide 19

Slide 19 text

Spring gRPC について Spring gRPC とは(2) 先週、こんな記事が、、、 まず start.spring.io にアクセスし、gRPC を選択して プロジェクトを生成します。 その後、選択したビルドツールでプロジェクトをビル ドすると、自動的にサービスのスタブが生成されま す。 https://start.spring.io/

Slide 20

Slide 20 text

Spring gRPC について Spring gRPC とは(2) 先週、こんな記事が、、、 まず start.spring.io にアクセスし、gRPC を選択して プロジェクトを生成します。 その後、選択したビルドツールでプロジェクトをビル ドすると、自動的にサービスのスタブが生成されま す。 https://start.spring.io/ というわけで、やってみた!

Slide 21

Slide 21 text

Spring gRPC について お試し Spring gRPC

Slide 22

Slide 22 text

Spring gRPC について お試し Spring gRPC

Slide 23

Slide 23 text

Spring gRPC について お試し Spring gRPC プロジェクト作成時点で proto ディレクトリが作成されている。 (併せて、依存関係も追加済み)

Slide 24

Slide 24 text

Spring gRPC について お試し Spring gRPC コード参考: https://github.com/spring-projects-experimental/spring-grpc/blob/main/samples/grpc-server/src/ main/proto/hello.proto proto ディレクトリ内に .proto ファイルを追加。

Slide 25

Slide 25 text

Spring gRPC について お試し Spring gRPC ビルドすると左のコードが作成。 (Gradle だと build ディレクトリ)

Slide 26

Slide 26 text

Spring gRPC について お試し Spring gRPC コード参考: https://github.com/spring-projects-experimental/spring-grpc/blob/main/samples/grpc-server/src/ main/java/org/springframework/grpc/sample/GrpcServerService.java 生成されたコードに対して、処理を 定義していく。

Slide 27

Slide 27 text

Spring gRPC について お試し Spring gRPC いつも通り、Spring Boot を起動。

Slide 28

Slide 28 text

Spring gRPC について お試し Spring gRPC .proto で定義したエンドポイントを叩くと結果が返る。 (「\u003e」は「>」がエスケープされている)

Slide 29

Slide 29 text

Spring gRPC について お試し Spring gRPC .proto で定義したエンドポイントを叩くと結果が返る。 (「\u003e」は「>」がエスケープされている) できた!簡単!

Slide 30

Slide 30 text

Spring gRPC について まとめのようなもの ● Spring Boot 上での gRPC 通信を簡単に導入・実現できる ● まだ Experimental なので、仕様は変わるかも ○ 実戦投入はまだ厳しいかな(不安) ● 公式のブログでも以下の内容もあるので期待は高い ○ GraalVM での実行 ○ Spring Security との連携 など

Slide 31

Slide 31 text

Spring gRPC について 参考情報 ● Spring gRPC Reference ○ https://docs.spring.io/spring-grpc/reference/index.html ● GitHub の Project ○ https://github.com/spring-projects-experimental/spring-grpc ● This Month in Spring – January 2025 ○ https://blogs.vmware.com/tanzu/this-month-in-spring-january-2025/ ● 例で使用したサンプルコード ○ https://github.com/spring-projects-experimental/spring-grpc/tree/m ain/samples/grpc-server

Slide 32

Slide 32 text

ご静聴いただき ありがとうございました!