Best Practices for (Go) gRPC Services

preview_player
Показать описание
It's easy to get a simple service up and running with gRPC, but there are many items often overlooked that can lead to problems down the road.
This session will cover a variety of lessons learned while developing and maintaining internal services at Google. Topics will include issues such as deadlines, retries, monitoring, error propagation, and memory management. Examples will be provided in Go, but the concepts can be applied to services in all languages.

CoreOS Fest 2017
Doug Fawley
Рекомендации по теме
Комментарии
Автор

00:34 What is gRPC?
03:48 Agenda
04:14 API Design - Idempotency
07:00 API Design - Performance
10:21 API Design - Defaults
12:48 API Design - Errors
16:08 Error Handling
18:14 Error Handling - Proper Propagation
20:02 Deadlines
22:22 Deadlines - Propagation
26:22 Rate Limiting
29:18 Retries
34:12 Memory Management
38:16 Logging
39:18 Monitoring

risongna
Автор

Really good. Need more stuff like this!!!

Oswee
Автор

Thank you for the presentation! I can add about long-term responses. What about a Push Notifications from the server? For example client opens a server streaming channel in a separate thread/process and checks Notifications from the server. And to set keepalive for preserving this channel open.

ClosiusBeg
Автор

I bought Amplifier and big speakers to listen to this video.

codelucky
Автор

Your presentation says "avoid batching multiple independent operations like updating multiple DB records". However, all DB's (like Cassandra / ES) recommend bulk operations for much better performance. And we have seen that's really true ... if we fell back to single CRUD operations, our system (handling around 50K events/sec) will essentially come to a halt. Of course, we are using REST right now, not gRPC.

gaatutube
Автор

Hi sir, i want to send an image from client to server through RPC, what should i do?, can you give me some examples
?

baotruong
Автор

thanks for sharing.. can you share the PPT ?

supercc