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