Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Microservice with go and gRPC
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Eunju Amy Sohn
November 05, 2018
Programming
660
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Microservice with go and gRPC
2018 GDG DevFest - go와 gRPC로 함께하는 마이크로서비스
Eunju Amy Sohn
November 05, 2018
More Decks by Eunju Amy Sohn
See All by Eunju Amy Sohn
내가 커뮤니티 스피킹을 하는 이유
ejsohn
1
450
Cloud Deep Learning for everyone
ejsohn
0
160
Spot Utilization for GPU Instance Cost Efficiency
ejsohn
0
140
40만명이 쓰는 Django channels 채팅서버, 우리는 어떻게 만들었나?
ejsohn
1
2.5k
Implementing Reactive Programming with ReSwift
ejsohn
0
240
Other Decks in Programming
See All in Programming
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
290
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
0
140
最近”作らせてる” ローカルAIアプリの話
akit37
0
480
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
800
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.5k
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
410
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
840
パスワード再設定メールのURLについて知っておこう
uyuki234
0
170
contenteditable と日本語入力に向き合う
colorful12
0
200
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
220
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Prompt Engineering for Job Search
mfonobong
0
520
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
570
Un-Boring Meetings
codingconduct
0
460
Speed Design
sergeychernyshev
33
2.2k
Mind Mapping
helmedeiros
1
400
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
YesSQL, Process and Tooling at Scale
rocio
174
15k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Transcript
, / EJSohn Korea go gRPC
- - - - - Korea
- go - REST .. gRPC ..? - gRPC -
- Korea
- What is gRPC? - Let s make it! (a.k.a
coding time) - gRPC features - Why Microservice? - Summary Korea
What is gRPC? Korea
gRPC Users
History of Server - Client communication Socket RPC CORBA DCOM
SOAP REST RMI 1983~ 1980s~1990s 1998~ 1999~ ~ ~ ~
History of Server - Client communication Socket RPC CORBA DCOM
SOAP REST RMI 1983~ 1980s~1990s 1998~ 1999~ ~ ~ ~ ?
History of Server - Client communication Socket RPC CORBA DCOM
SOAP REST RMI 1983~ 1980s~1990s 1998~ 1999~ ~ ~ ~ Socket .
History of Server - Client communication RPC (Remote Procedure Call)
• RPC • . • .
History of Server - Client communication Socket RPC CORBA DCOM
SOAP REST RMI 1983~ 1980s~1990s 1998~ 1999~ ~ ~ ~ RPC .. !
History of Server - Client communication Socket RPC CORBA DCOM
SOAP REST RMI 1983~ 1980s~1990s 1998~ 1999~ ~ ~ ~ HTTP . SOAP - XML REST - ( )JSON
History of Server - Client communication Socket RPC CORBA DCOM
SOAP REST RMI 1983~ 1980s~1990s 1998~ 1999~ ~ ~ ~ HTTP . SOAP - XML REST - ( )JSON
History of Server - Client communication gRPC (google Remote Procedure
Call) Stubby RPC Stubby
How it works gRPC • Stub • IDL (Interface Description
Language) • Protocol Buffers
How it works? RPC - Stub • . • Polyglot
programming
How it works gRPC • Stub • IDL (Interface Description
Language) - - Stub • Protocol Buffers
How it works gRPC • Stub • IDL (Interface Description
Language) • Protocol Buffers - (serialization) - IDL stub service interface code
How it works gRPC
None
None
gRPC service outline API - Unary RPC Model (User) -
name, age, cache API - cache - cache User Server lang - go Client lang - python
Go • google • Docker, Kubernetes, Packer • • gRPC
gRPC tool ( https:// github.com/grpc-ecosystem/ awesome-grpc )
api.proto file
Proto3 Protocol buffers language Version: proto2(default) & proto3 Service Message
type Service field type generally scalar, enum or other message types filed number message .
api.proto file Version Service Message Field type Field number
Protocol Buffers stub, service interface code • protoc • .proto
service interface code =
. go / python
- go api.pb.go
- go api.pb.go
How it works - Again gRPC
gRPC Go Server interface *pb=imported service interface code
Context in golang For deadlines, cancelation, and requested-scoped values -
- cancelation goroutine? - go - Dave Cheny Never start a goroutine without knowing how it will stop
gRPC Go Server - 1 NewServer
gRPC Go Server - 2 RunServer
gRPC Python Client
Try it out! Compile and Run • Server • Client
Diagram Unary RPC Diagram Client Server Request Response
Diagram Stream RPC Diagram Client Server Message Message Message Message
Message Message Example: Chatting
Diagram RPC with goroutine & channel Diagram - 1 Client
Server 1 Request Response Server 2 Request Response
gRPC tips .proto - - git submodule .proto message -
Load balancing - low-latency gRPC client-side LB
gRPC Pros 1.
gRPC Pros 2. .. • HTTP/2 default, binary data, header
compression, cancellation propagation • Google App Engine n1-highcpu-16 CPU 11
gRPC Pros Others • • - , Tracing, Load Balancing,
Health checking
gRPC Cons • - HTTP . (curl, postman..) ..?
gRPC compare with REST • , , REST . •
.. !
Go s http request multiplexer Content-type base routing application/grpc ->
direct grpc else -> grpc-gateway https://github.com/grpc- ecosystem/grpc-gateway
Go s http request multiplexer Alternative way
why gRPC is good at Microservice? What is Microservice •
• / . • ? - - - -
None
why gRPC is good at Microservice? Microservice gRPC • •
• gRPC network latency • typing/versioning •
Summary go grpc • Microservice gRPC • Polyglot • REST
Resources References & Resources • reference tutorial Github . •
https://github.com/EJSohn/microservice-with-go-and-grpc
! Q&A -