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
Microservice with go and gRPC
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Eunju Amy Sohn
November 05, 2018
Programming
640
1
Share
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
430
Cloud Deep Learning for everyone
ejsohn
0
160
Spot Utilization for GPU Instance Cost Efficiency
ejsohn
0
120
40만명이 쓰는 Django channels 채팅서버, 우리는 어떻게 만들었나?
ejsohn
1
2.5k
Implementing Reactive Programming with ReSwift
ejsohn
0
230
Other Decks in Programming
See All in Programming
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.4k
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
230
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
3Dシーンの圧縮
fadis
1
640
Oxcを導入して開発体験が向上した話
yug1224
4
280
今さら聞けないCancellationToken
htkym
0
220
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
110
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
730
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
350
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
140
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
140
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
How to Think Like a Performance Engineer
csswizardry
28
2.6k
We Are The Robots
honzajavorek
0
240
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
400
Git: the NoSQL Database
bkeepers
PRO
432
67k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
720
The Pragmatic Product Professional
lauravandoore
37
7.3k
Speed Design
sergeychernyshev
33
1.8k
So, you think you're a good person
axbom
PRO
2
2k
Embracing the Ebb and Flow
colly
88
5.1k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
410
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 -