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
5 years on air - Andrii Bereza
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
GDG Cherkasy
December 16, 2017
73
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
5 years on air - Andrii Bereza
Grpc Introduction
GDG Cherkasy
December 16, 2017
More Decks by GDG Cherkasy
See All by GDG Cherkasy
Трансформація від розробника до ліда: байки та поради.
gdgcherkasy
0
150
Емоції: усвідомлення, прийняття, комунікація
gdgcherkasy
0
150
Kibana Plugin Development - Vlad Bolibruk
gdgcherkasy
0
93
“Why JS is way to go for backend”
gdgcherkasy
0
96
CoreData, custom merge policy
gdgcherkasy
2
1.6k
macOS_for_iOS_devs2.pdf
gdgcherkasy
0
87
MQTT.pdf
gdgcherkasy
1
59
Инструменты Lean Product Management как точки пересечения проектов с "реальностью": хватит клонировать плохие решения!
gdgcherkasy
1
93
Насколько силен Иммунитет вашей организации?
gdgcherkasy
1
120
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Automating Front-end Workflow
addyosmani
1369
210k
It's Worth the Effort
3n
188
29k
Believing is Seeing
oripsolob
1
190
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
BBQ
matthewcrist
89
10k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Transcript
None
gRPC
1. 2. 3.
★ ★ ★ ★ { "id": 1, "name": "Solaire of
Astora", "description": "Praise The gRPC!", "hollow": null }
gRPC
gRPC
gRPC
➢ ➢ ➢ ➢ gRPC
UI Logging Data Service Data Source 1 Data Source 2
gRPC
None
★ ★ ★ ★
gRPC
None
Describe (.proto) Implement (Server) Invoke (Client) Generate Code
message User { int32 id = 1; string name =
2; bool administrator = 3; } message name property type property name property index gRPC
service HelloService { rpc Hello(HelloRequest) returns (HelloResponse); } message HelloRequest
{ string name = 1; } message HelloResponse { string response = 1; } service name service method request type response type gRPC
None
class HelloService: HelloServiceImplBase() { } override fun hello(request: HelloRequest, responseObserver:
StreamObserver<HelloResponse>) { } responseObserver.onNext( HelloResponse.newBuilder() .setResponse("Hello, " + request.name) .build() ) responseObserver.onCompleted()
NettyServerBuilder.forPort(4444) .addService(HelloService()) .build() .start()
val channel = ManagedChannelBuilder.forAddress("localhost", 4444) .build(); val request = HelloRequest.newBuilder()
.setName("WALL-E") .build() val response = HelloServiceGrpc.newBlockingStub(channel) .hello(request) HelloServiceGrpc.newStub(channel) .hello(request, object: StreamObserver<HelloResponse> { override fun onNext(value: HelloResponse?) { println("I'm not alone!") } override fun onError(t: Throwable?) {} override fun onCompleted() {} })
None
➢ ➢ ➢
• • •
gRPC
• • • • • •