Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
gRPCを完璧に理解する
Search
yuki21
August 28, 2020
Technology
0
45
gRPCを完璧に理解する
5分間社内LT資料
yuki21
August 28, 2020
Tweet
Share
More Decks by yuki21
See All by yuki21
労務ドメインを快適に開発する方法 / How to Comfortably Develop in the Labor Domain
yuki21
1
340
GitHubのコマンドパレット使ってますか?
yuki21
0
1.4k
キャッシュを利用してRailsアプリの処理を高速化する
yuki21
0
110
Next.js & ElectronでTodoアプリを作る
yuki21
0
700
RSpec -基本の基-
yuki21
0
48
Committeeを導入してみた
yuki21
0
120
マイクロサービスとモノリスとKBR
yuki21
0
47
ActiveModelSerializersについて
yuki21
0
34
脆弱性について
yuki21
0
160
Other Decks in Technology
See All in Technology
ソフトウェア開発現代史: "LeanとDevOpsの科学"の「科学」とは何か? - DORA Report 10年の変遷を追って - #DevOpsDaysTokyo
takabow
0
390
ドキュメント管理の理想と現実
kazuhe
1
200
クォータ監視、AWS Organizations環境でも楽勝です✌️
iwamot
PRO
1
320
プロダクト開発におけるAI時代の開発生産性
shnjtk
2
240
Road to Go Gem #rubykaigi
sue445
0
670
Dynamic Reteaming And Self Organization
miholovesq
3
540
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
0
100
LangfuseでAIエージェントの 可観測性を高めよう!/Enhancing AI Agent Observability with Langfuse!
jnymyk
1
230
3月のAWSアップデートを5分間でざっくりと!
kubomasataka
0
120
AWS全冠芸人が見た世界 ~資格取得より大切なこと~
masakiokuda
5
6.2k
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
AIでめっちゃ便利になったけど、結局みんなで学ぶよねっていう話
kakehashi
PRO
0
180
Featured
See All Featured
Code Review Best Practice
trishagee
67
18k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Designing Experiences People Love
moore
141
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
680
Unsuck your backbone
ammeep
670
57k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.6k
Transcript
gRPCを完璧に理解する Kobayashi Yuta
None
gRPCって何? gRPCは、Googleが開発したオープンソースのRPC Remote Procedure Call フレームワーク です。 データのトランスポートにはHTTP/2、データのシリアライズにはProtocol Buffersを利⽤し、 ⾼速な通信が可能となっています。
RPCって何…? RPCとは、Remote Procedure Callの略で、直訳すると"遠隔⼿続き呼出し"です。 もっと簡単に⾔うと、別空間にあるメソッドを呼び出す処理のことを⾔います。
それってRESTと何が違うの? RESTはリソース指向アーキテクチャを基本としますが、RPCはリソースの縛りを受けませ ん。
つまりどういうことか REST PATCH https://example.com/users/1 Body: { active: true } RPC
POST https://example.com/userActivate
Protocol Buffersって……? Protocol Buffersは構造化データをシリアライズするためのフォーマット記述⾔語です。 データをどのように構造化するかを⼀度定義すると、定義から⽣成されたソースコードを使⽤ して、さまざまなデータストリームや⾔語を使⽤して、データを簡単に書き込んだり、読み込 んだりすることができます。
定義 message Person { required string name = 1; required
int32 id = 2; optional string email = 3; } シリアライズ Person john = Person.newBuilder() .setId(1234) .setName("John Doe") .setEmail("
[email protected]
") .build(); output = new FileOutputStream(args[0]); john.writeTo(output);
gRPCって何? gRPCは、Googleが開発したオープンソースのRPC Remote Procedure Call フレームワーク です。 データのトランスポートにはHTTP/2、データのシリアライズにはProtocol Buffersを利⽤し、 ⾼速な通信が可能となっています。
結局gRPCは何をしているのか?
結局gRPCは何をしているのか? Protocol Buffersの定義から各プログラミング⾔語のクラス定義やサービスを⽣成する Protocol Buffers単体でも利⽤できるが、gRPC⽤のツールも存在する。 ⽣成されたサービスからサーバーとクライアントを実装し、データの双⽅向通信を実現す る
他にも… gRPC⾃体にヘルスチェックの機能であったり、メタデータ(認証の詳細等)を扱う仕組みが ⽤意されているようです。
ご静聴ありがとうございました 参考 Introduction to gRPC https://grpc.io/docs/what-is-grpc/introduction/ サービス間通信のための新技術「gRPC」⼊⾨ | さくらのナレッジ https://knowledge.sakura.ad.jp/24059/
None