Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
KK
Uploaded by
Kenjiro Kubota
24,283 views
gRPC入門
4/18 社内勉強会
Software
◦
Read more
15
Save
Share
Embed
Embed presentation
Download
Downloaded 42 times
1
/ 69
2
/ 69
3
/ 69
4
/ 69
5
/ 69
6
/ 69
7
/ 69
8
/ 69
9
/ 69
10
/ 69
11
/ 69
12
/ 69
13
/ 69
14
/ 69
15
/ 69
16
/ 69
17
/ 69
18
/ 69
19
/ 69
20
/ 69
21
/ 69
22
/ 69
23
/ 69
24
/ 69
25
/ 69
26
/ 69
27
/ 69
28
/ 69
29
/ 69
30
/ 69
31
/ 69
32
/ 69
33
/ 69
34
/ 69
35
/ 69
36
/ 69
37
/ 69
38
/ 69
39
/ 69
40
/ 69
41
/ 69
42
/ 69
43
/ 69
44
/ 69
45
/ 69
46
/ 69
47
/ 69
48
/ 69
49
/ 69
50
/ 69
51
/ 69
52
/ 69
53
/ 69
54
/ 69
55
/ 69
56
/ 69
57
/ 69
58
/ 69
59
/ 69
60
/ 69
61
/ 69
62
/ 69
63
/ 69
64
/ 69
65
/ 69
66
/ 69
67
/ 69
68
/ 69
69
/ 69
More Related Content
PDF
オブジェクト指向できていますか?
by
Moriharu Ohzu
PDF
例外設計における大罪
by
Takuto Wada
PDF
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
by
Daichi Koike
PPTX
async/await のしくみ
by
信之 岩永
PDF
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
by
Shin Ohno
PDF
強いて言えば「集約どう実装するのかな、を考える」な話
by
Yoshitaka Kawashima
PPTX
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
オブジェクト指向できていますか?
by
Moriharu Ohzu
例外設計における大罪
by
Takuto Wada
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
by
Daichi Koike
async/await のしくみ
by
信之 岩永
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
by
Shin Ohno
強いて言えば「集約どう実装するのかな、を考える」な話
by
Yoshitaka Kawashima
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
by
NTT DATA Technology & Innovation
What's hot
PDF
超実践 Cloud Spanner 設計講座
by
Samir Hammoudi
PDF
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
PDF
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
PPTX
Effective Modern C++ 勉強会 Item 22
by
Keisuke Fukuda
PPTX
DockerコンテナでGitを使う
by
Kazuhiro Suga
PDF
関数型プログラミングのデザインパターンひとめぐり
by
Kazuyuki TAKASE
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
デキるプログラマだけが知っているコードレビュー7つの秘訣
by
Masahiro Nishimi
PDF
暗号技術の実装と数学
by
MITSUNARI Shigeo
PDF
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
PPT
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
RSA暗号運用でやってはいけない n のこと #ssmjp
by
sonickun
PDF
できる!並列・並行プログラミング
by
Preferred Networks
PPTX
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
by
DeNA
PDF
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
PDF
プログラムを高速化する話
by
京大 マイコンクラブ
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
超実践 Cloud Spanner 設計講座
by
Samir Hammoudi
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
by
toshi_pp
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
Effective Modern C++ 勉強会 Item 22
by
Keisuke Fukuda
DockerコンテナでGitを使う
by
Kazuhiro Suga
関数型プログラミングのデザインパターンひとめぐり
by
Kazuyuki TAKASE
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
デキるプログラマだけが知っているコードレビュー7つの秘訣
by
Masahiro Nishimi
暗号技術の実装と数学
by
MITSUNARI Shigeo
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
RSA暗号運用でやってはいけない n のこと #ssmjp
by
sonickun
できる!並列・並行プログラミング
by
Preferred Networks
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
by
DeNA
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
プログラムを高速化する話
by
京大 マイコンクラブ
マイクロにしすぎた結果がこれだよ!
by
mosa siru
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
Similar to gRPC入門
PDF
gRPC入門
by
ssuser0f153f
PPTX
20200807勉強会~gRPCに入門しよう~
by
TatsuyaKono1
PDF
gRPCをちょこっと調べた話
by
Shuzo Kashihara
PPTX
gRPCurlDotNet.pptx
by
Takao Tetsuro
PDF
Protocol Buffers 入門
by
Yuichi Ito
PDF
grpc-gateway を試してみた fukuoka.go#11
by
Yutaka Tachibana
PDF
20191024 Get Start gRPC with ASP.NET
by
Takayoshi Tanaka
PPTX
Web socket and gRPC
by
TIS Inc
PDF
RakSulのInternal API開発で gRPCを導入した話
by
nixiesan
PPTX
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
by
洵貴 佐川
PPTX
WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話
by
keitasudo1
PDF
XML-RPC : Pythonが「電池付属」と呼ばれる理由
by
Ransui Iso
PDF
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
by
虎の穴 開発室
PDF
grpc-haskell.pdf
by
Kousuke Ruichi
PDF
Json rpc 2_0
by
Atsushi Odagiri
PPTX
gRPCを使ったメディアサービス
by
gree_tech
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
PDF
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
by
Hironobu Isoda
PDF
Gumi study7 messagepack
by
Sadayuki Furuhashi
PDF
gumiStudy#7 The MessagePack Project
by
Sadayuki Furuhashi
gRPC入門
by
ssuser0f153f
20200807勉強会~gRPCに入門しよう~
by
TatsuyaKono1
gRPCをちょこっと調べた話
by
Shuzo Kashihara
gRPCurlDotNet.pptx
by
Takao Tetsuro
Protocol Buffers 入門
by
Yuichi Ito
grpc-gateway を試してみた fukuoka.go#11
by
Yutaka Tachibana
20191024 Get Start gRPC with ASP.NET
by
Takayoshi Tanaka
Web socket and gRPC
by
TIS Inc
RakSulのInternal API開発で gRPCを導入した話
by
nixiesan
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
by
洵貴 佐川
WCFのパイプ通信を .NET 5に向けてgRPCへ置き換える話
by
keitasudo1
XML-RPC : Pythonが「電池付属」と呼ばれる理由
by
Ransui Iso
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
by
虎の穴 開発室
grpc-haskell.pdf
by
Kousuke Ruichi
Json rpc 2_0
by
Atsushi Odagiri
gRPCを使ったメディアサービス
by
gree_tech
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
Logicadの秒間16万リクエストをさばく広告入札システムにおける、gRPCの活用事例
by
Hironobu Isoda
Gumi study7 messagepack
by
Sadayuki Furuhashi
gumiStudy#7 The MessagePack Project
by
Sadayuki Furuhashi
More from Kenjiro Kubota
PDF
いまどき(これから)のPHP開発
by
Kenjiro Kubota
PDF
アイスタイル特設サイトにおけるVue.js導入事例(再演)
by
Kenjiro Kubota
PDF
アイスタイル特設サイトにおけるVue.jsの導入事例
by
Kenjiro Kubota
PDF
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
PDF
フロントエンドエンジニアが知るべきFirebaseの世界
by
Kenjiro Kubota
PDF
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
by
Kenjiro Kubota
PDF
カメラを利用したアプリを作って約1000人で遊んだ話
by
Kenjiro Kubota
PDF
中・大規模でLaravelを導入するTips
by
Kenjiro Kubota
PDF
FirebaseとNuxtでLPを作って見た
by
Kenjiro Kubota
PDF
introducing vue-wait-component
by
Kenjiro Kubota
PDF
HHVM/Hackを本番投入した話
by
Kenjiro Kubota
PDF
HackのAsyncCurlで死んだ話
by
Kenjiro Kubota
PDF
LaravelでAPI定義を管理する
by
Kenjiro Kubota
PDF
2017: A CSS Design Odyssey
by
Kenjiro Kubota
PDF
Introducing hhvm hack-async
by
Kenjiro Kubota
PDF
Responsableを使ったadr実装
by
Kenjiro Kubota
PDF
土日でLineみたいなチャット作ってきた!
by
Kenjiro Kubota
PDF
Viewを活用して複雑化と戦う
by
Kenjiro Kubota
PDF
Laravel aspectで関心の分離
by
Kenjiro Kubota
PDF
Laravelでfacadeを使わない開発
by
Kenjiro Kubota
いまどき(これから)のPHP開発
by
Kenjiro Kubota
アイスタイル特設サイトにおけるVue.js導入事例(再演)
by
Kenjiro Kubota
アイスタイル特設サイトにおけるVue.jsの導入事例
by
Kenjiro Kubota
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
フロントエンドエンジニアが知るべきFirebaseの世界
by
Kenjiro Kubota
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
by
Kenjiro Kubota
カメラを利用したアプリを作って約1000人で遊んだ話
by
Kenjiro Kubota
中・大規模でLaravelを導入するTips
by
Kenjiro Kubota
FirebaseとNuxtでLPを作って見た
by
Kenjiro Kubota
introducing vue-wait-component
by
Kenjiro Kubota
HHVM/Hackを本番投入した話
by
Kenjiro Kubota
HackのAsyncCurlで死んだ話
by
Kenjiro Kubota
LaravelでAPI定義を管理する
by
Kenjiro Kubota
2017: A CSS Design Odyssey
by
Kenjiro Kubota
Introducing hhvm hack-async
by
Kenjiro Kubota
Responsableを使ったadr実装
by
Kenjiro Kubota
土日でLineみたいなチャット作ってきた!
by
Kenjiro Kubota
Viewを活用して複雑化と戦う
by
Kenjiro Kubota
Laravel aspectで関心の分離
by
Kenjiro Kubota
Laravelでfacadeを使わない開発
by
Kenjiro Kubota
gRPC入門
1.
gRPC入門 KenjiroKubota #社内勉強会
2.
あじぇんだ 1. gRPCとは 2. Protocol
Buffersとは 3. protocを利用してコード生成 4. Goで使ってみよう 5. PHPで使ってみよう
3.
gRPCとは
4.
gRPC ● RPC(Remote Procedure
Call)を実現するためのプロトコルの一つ ● Googleが開発 ● ProtocolBuffersを利用して高速かつ低容量での通信を実現 ● C++, Java, Python, Go, Ruby, C#, Node.js, PHP… さまざな言語に 対応 ● gRPCの「g」はバージョン毎に意味が異なる https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md
5.
https://grpc.io/docs/guides/
6.
gRPCの通信方式
7.
UnaryRPC(SimpleRPC) https://qiita.com/yuzo777/items/046910c95559cf0fff68 シンプルな1リクエスト1レスポンス
8.
ServerStreamingRPC https://qiita.com/yuzo777/items/046910c95559cf0fff68 1リクエストNレスポンス サーバープッシュなど
9.
ClientStreamingRPC https://qiita.com/yuzo777/items/046910c95559cf0fff68 Nリクエスト1レスポンス データアップロードなど
10.
BidirectionalStreamingRPC https://qiita.com/yuzo777/items/046910c95559cf0fff68 NリクエストNレスポンス チャットなど
11.
Protocol Buffersとは
12.
Protocol Buffers ● 言語やプラットフォームに依存しない、構造化されたデータをシリア ライズする拡張可能なメカニズム。XMLやJSONのようなインター フェイス記述言語(IDL)。似たようなものにAvroやThriftがある。 ●
.protoという拡張子のファイルで定義 ● 現在の主流はバージョン3 ● protobufと略されることが多い ● protocというツールを利用して各言語のコードを生成する
13.
https://dejanstojanovic.net/aspnet/2018/june/how-to-boost-application-performance-by-choosing-the-right-serialization/
14.
https://dejanstojanovic.net/aspnet/2018/june/how-to-boost-application-performance-by-choosing-the-right-serialization/
15.
protoファイルの書き方
17.
宣言しないとproto2と解釈される
18.
メッセージ型
19.
フィールド・型指定が可能
20.
タグナンバー バイナリ変換時にフィールドを区別する際に利用される。 これは一度採番したら変えるべきではない。変更がある場合は新たに採番する必要がある
21.
コメントもかけるよ
22.
予約タグナンバーやフィールドを指定できる。 過去に使っていたタグナンバーやフィールドを指定しておくと事故らない reservedフィールドにタグナンバーとフィールド名を混合して記述することはできない
23.
スカラ型対応リスト https://developers.google.com/protocol-buffers/docs/proto3 ネット見ろ
24.
デフォルト値 string 空文字列 bytes 空バイト列 bool
false 数値型 ゼロ enum 最初に列挙されたもの(必ず0指定である必要がある)
25.
enum型例
26.
enum型例
27.
proto2との互換性のため、 ゼロスタート enum型例
28.
他のメッセージを含める
29.
他のメッセージを含める
30.
oneof どちらかの値のみを使うことでメモリを節約する仕組み。 プログラム上は最後にセットした方が有効になる。
31.
map 配列の定義もちゃんとあります
32.
パッケージ メッセージの名前衝突を避けるためにパッケージで名前空間を分けることができる
33.
サービス定義 メッセージ型をRPCでやり取りする際の定義を行うことができる。 先にあげたUnaryRPCやその他の指定はここで行う。
34.
protocを利用してコード生成
35.
protoファイルはそのままでは使えません 定義ファイルから対象のプログラミング言語に対応したコードを生成させ る必要があります。 そこで、protocというコード生成ツールを利用します。 protoc plugin
36.
導入 ● Mac brew install
protobuf ● Windows DLしてPATH通せばよいっぽい https://github.com/protocolbuffers/protobuf/releases
37.
用意するprotoファイル
38.
Goのコードを書き出す
40.
protoファイルからGoのファイルを生成
41.
protoファイルからGoのファイルを生成 protoファイルと同じ階層にgrpcプラグインを利用して書き出し
42.
before after
43.
生成されたファイル・・・!
44.
PHPコードを書き出す
45.
protoファイルは同じものを利用
46.
PHPのコード生成にはプラグインが必要
47.
protoファイルからPHPのファイルを生成
48.
protoファイルからPHPのファイルを生成 先ほどmakeしたプラグインファイルを指定
50.
GoでgRPCサーバーを作る
51.
再掲) protoファイル
53.
リクエストを受け付ける
54.
メッセージを取得する
55.
レスポンスを返却する
57.
さっき作った サービスを登録 する。
58.
PHPでgRPCクライアントを作る
59.
PHPでは拡張モジュールが必要 https://cloud.google.com/php/grpc ネット見ろ
67.
Demo
68.
まとめ ● 思ったよりgRPCは手軽に使える ● 本番投入したことないのでツラミはわからない ●
スキーマ変更が大変そう (新しいメッセージ型にかえてしまえばよいのかな?) ● API定義書が不要 ● REST APIのクライアント周り作るより楽、圧倒的に楽 ● 認証周りもできるらしい ● だれかサービス担当・権限ある人導入してみて!!!www
69.
thanks;)
Download