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
44
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
310
GitHubのコマンドパレット使ってますか?
yuki21
0
1.4k
キャッシュを利用してRailsアプリの処理を高速化する
yuki21
0
110
Next.js & ElectronでTodoアプリを作る
yuki21
0
690
RSpec -基本の基-
yuki21
0
45
Committeeを導入してみた
yuki21
0
120
マイクロサービスとモノリスとKBR
yuki21
0
46
ActiveModelSerializersについて
yuki21
0
33
脆弱性について
yuki21
0
150
Other Decks in Technology
See All in Technology
ObservabilityCON on the Road Tokyoの見どころ
hamadakoji
0
210
[2024年10月版] Notebook 2.0のご紹介 / Notebook2.0
databricksjapan
0
1.6k
あなたはJVMの気持ちを理解できるか?
skrb
5
2k
“自分”を大切に、フラットに。キャリアチェンジしてからの一年 三ヶ月で見えたもの。
maimyyym
0
300
re:Invent Recap (January 2025)
scalefactory
0
340
例外処理を理解して、設計段階からエラーを「見つけやすく」「起こりにくく」する
kajitack
12
3.8k
Makuake*UPSIDER_LightningTalk
upsider_tech
0
200
ココナラのセキュリティ組織の体制・役割・今後目指す世界
coconala_engineer
0
220
サーバーレスで楽しよう!お気軽に始められる3つのポイント / Have fun with Serverless!
_kensh
2
230
[SRE kaigi 2025] ガバメントクラウドに向けた開発と変化するSRE組織のあり方 / Development for Government Cloud and the Evolving Role of SRE Teams
kazeburo
4
1.9k
生成AIを活用した機能を、顧客に提供するまでに乗り越えた『4つの壁』
toshiblues
1
210
Redmineの意外と知らない便利機能 (Redmine 6.0対応版)
vividtone
0
190
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
380
Making Projects Easy
brettharned
116
6k
Become a Pro
speakerdeck
PRO
26
5.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
600
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.5k
Designing for humans not robots
tammielis
250
25k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
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