FresherKỹ thuậtThiết kế API
API gateway là gì và nó làm những việc gì?
Thử trả lời trước
Đáp án mẫu
API gateway là một server đặt trước các backend service và đóng vai trò điểm vào duy nhất cho client. Hãy hình dung nó như quầy lễ tân: mọi khách đều check-in ở đó, rồi quầy chỉ họ tới đúng phòng.
Các việc điển hình:
- Routing:
/orders/*đi tới orders service,/users/*tới users service. - Authentication: kiểm tra API key hoặc token một lần, thay vì ở từng service.
- Rate limiting và quota: bảo vệ service khỏi bị lạm dụng.
- TLS termination, logging và metric ở một nơi.
- Các tính năng thêm như caching, biến đổi request và gộp response.
Client chỉ thấy một URL ổn định, còn các service phía sau có thể di chuyển, scale hoặc viết lại.
Nó có liên quan nhưng không giống load balancer (chia traffic cho các instance giống hệt nhau) và reverse proxy (chuyển tiếp request). Gateway là reverse proxy có thêm tính năng hiểu API. Ví dụ là Kong, các gateway dựa trên Envoy và AWS API Gateway.
Rủi ro là nó trở thành single point of failure, nên cần chạy nhiều instance.
Ý chính
- Điểm vào duy nhất đặt trước các backend service
- Xử lý routing, auth, rate limiting và logging
- Là reverse proxy có thêm tính năng hiểu API
- Chạy nhiều instance để tránh single point of failure
Câu hỏi nối tiếp thường gặp
- API gateway khác load balancer ở điểm nào?
- Những gì không nên đặt trong gateway?
Lỗi thường gặp
- Coi gateway là nơi đặt logic nghiệp vụ
- Chạy một instance gateway duy nhất ở production