API Gateway được đánh giá là một phương pháp tiếp cận cực kỳ đơn giản, đóng vai trò như cổng kết nối trung gian giữa Client và hệ thống Microservice phía sau.
API Gateway là gì?
Hiểu một cách đơn giản nhất thì API Gateway chính là cổng kết nối trung gian.
Đây là cổng vào duy nhất tới hệ thống Microservice, nhận tất cả yêu cầu từ Client và thực hiện các hành động như chỉnh sửa - xác thực - điều hướng chúng đến từng API cụ thể trên các Service phía sau.
Ngoài ra, API Gateway còn được xem là một bộ phận phiên dịch và chịu trách nhiệm hợp lý hóa hệ thống.
Mối quan hệ giữa API Gateway và hệ thống Microservices
Một hệ thống Microservice trung bình có tới hàng trăm Service khác nhau.
Chính vì vậy, nếu phía Client kết nối với các Service trong hệ thống này mà không thông qua bất kỳ phương pháp nào thì sơ đồ giao tiếp của chúng sẽ trông cực kỳ phức tạp.
Lúc này, API Gateway xuất hiện như một giải pháp hoàn hảo giúp cho việc giao tiếp giữa Client và hệ thống Microservice trở nên đơn giản hơn rất nhiều lần.
Có thể nói, việc triển khai API Gateway cho các ứng dụng dựa trên Microservice là một vấn đề cực kỳ quan trọng, vì đây được xem như điểm vào duy nhất đến hệ thống.
API Gateway kết hợp với hệ thống Microservice giúp tạo ra trải nghiệm đơn giản hóa cho người dùng.
Một số ưu và nhược điểm khi ứng dụng API Gateway
Ưu điểm
- Giấu được cấu trúc của hệ thống Microservice với bên ngoài.
- Giúp phần Code phía Frontend trông gọn gàng hơn.
- Theo dõi và quản lý Traffic một cách đơn giản.
- Giảm rủi ro hệ thống bị quá tải.
- Bảo mật hệ thống tốt hơn, ngăn chặn các cuộc tấn công.
- Có thể ứng dụng để xác thực người dùng, thay thế cho Authentication Service.
- Làm cho hệ thống trở nên đơn giản và hoạt động tối ưu hơn.
Nhược điểm
- Vì phải thông qua Server trung gian nên việc Response cũng sẽ bị trễ hơn so với khi gọi trực tiếp tới hệ thống, gây mất nhiều thời gian.
- Việc quản lý API Gateway và xử lý khi có lỗi khá phức tạp.
- Nếu không được Scale và Config hợp lý thì API Gateway có thể bị quá tải cũng như gây nghẽn cổ chai và làm chậm hệ thống.
- Tốn nhiều chi phí cho Server và nguồn điện...