gRPC
เป็น Protocol ที่เอาไว้คุยกันแบบ synchronous แต่มันใช้ยังไงงะ
HTTP2
เพราะว่า gRPC มันรันอยู่บน HTTP2 เลยต้องมาทำความเข้าใจก่อนว่ามันคืออะไร ลองดูตัวอย่าง โดยที่ปกติ HTTP 1 มันจะเปิด Request ก่อนในทุกๆอัน ละรอจนจบ ปิด connection ละค่อยเปิด TCP Connection ใหม่ ทำให้ช้า ส่วน HTTP2 คือมันจะเปิด TCP Connection ค้างไว้เลย ละทำ Server Push ไปหา Server เรื่อยๆแทน แถมใช้ Binary แทน Plain Text ทำให้มันเล็กกว่า ใช้ SSL เป็น Default ทำให้ปลอดภัยกว่า
Types of API in gRPC
Unary
คือ 1 client 1 request 1 response ปกติ เหมือน Rest
Server streaming
คือ 1 client 1 request แต่เรารอรับได้หลาย response
Client streaming
client ส่งไปหลายๆ request ได้ ละ server ก็ตอบกลับมาเป็น 1 response
Bi directional streaming
Client สามารถส่งได้หลาย request ละ server ก็สามารถส่งได้หลาย Response เหมือนกัน
Example
service GreetService {
// Unary
rpc Greet(GreetRequest) returns (GreetResponse) {};
// Server streaming
rpc GreetManyTimes(GreetRequest) returns (stream GreetResponse) {};
// Client streaming
rpc LongGreet(stream GreetRequest) returns (GreetResponse) {};
// Bi directional streaming
rpc GreetEveryone(stream GreetRequest) returns (stream GreetResponse) {};
}
Scalability
Last updated