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/