Giới thiệu gRPC

Ngày nay microservices đang nổi lên như một hiện tượng mạnh mẽ . Nó đáp ứng những yêu cầu mà thiết kế kiểu monolithic architecture không có . Và phần quan trọng nhất của nó chính là khả năng scale và quản lý riêng từng service.

I. Microservices ?

  • Microservices hỗ trợ bởi rất nhiều ngôn ngữ .
  • Nếu những services này cần phải trao đổi qua lại các thông tin như : data, data format, error pattern, load balancing, other ... thì microservices chính là lựa chọn cực kì tốt.
  • Một trong những lựa chọn rất phổ biến là REST (HTTP-JSON)

II. Xây dựng API

  • Cần phải cấu trúc được data model : JSON, XML, ...
  • Xây dựng endpoint : GET, POST url
  • Bắt lỗi và hiển thị cho frontend
  • Phải chú ý performance khi xây dựng API
  • Chú ý độ trễ của của các request, response
  • Xử lý load balancing
  • Xử lý giao tiếp giữa nhiều ngôn ngữ khác nhau
  • Xử lý authentication, monitoring, logging

III. gRPC là gì

  • gRPC là framework mã nguồn mở được phát triển bởi Google
  • gRPC là 1 phần của Cloud Native Computation Foundation(CNCF) - giống như Docker và Kubernetes
  • Ở mức sâu hơn nó cho phép chúng ta định nghĩa REQUEST và RESPONSE cho RPC(Remote Procedure Calls)
  • Hơn hết , nó modern, fast, eficient, xây dựng dựa trên HTTP/2, low latency, hỗ trợ streaming, language independent, dễ dàng cài cắm authentication, load balancing, logging, monitoring.

IV. Xây dựng gRPC

  • Cấu trúc nền tảng cho gRPC là xây dựng các message và services sử dụng Protocol Buffers
  • Sau đó nó sẽ tự generate ra code thích hợp
  • Từ 1 .proto file mà chúng ta định nghĩa nó sẽ generate ra 12 ngôn ngữ khác nhau và cho phép chúng ta scale đến hàng triệu request mỗi giây.
  • VD proto

V. Tại sao chúng ta lại cần gRPC?

  • Rất nhiều công ty đã ứng dụng nó thành Production : Google(Pub/Sub), Netflix, Square, CoreOS, CoackroachDB
  • gRPC chính là tương lai của micro-service API và mobile-server API, và tương lai là cả web API

Tham khảo : https://grpc.io/