Nâng cao hiệu suất API sẽ đem lại lợi ích to lớn bằng cách cải thiện trải nghiệm người dùng, giảm thiểu thời gian chờ đợi và tăng khả năng mở rộng của hệ thống.
Caching
Đây là một trong những phương pháp hiệu quả nhất để tăng tốt API. Bằng phương pháp caching, chúng ta lưu trữ những kết quả ngốn tài nhiều tài nguyên để tính toán, nhờ đó chúng ta có thể sử dụng lại sau đó mà không cần phải thực hiện lại các tính toán phức tạp.
Nếu như bạn có một đầu cuối (endpoint) thường xuyên được truy cập bởi cùng các request có cùng tham số (parameters): bạn có thể tránh việc truy xuất cơ sở dẽ liệu (database) bằng cách caching phản hồi (response) trong Redis hoặc Memcached.
Hầu hết các thư viện phục vụ caching giúp ta thực hiện công việc này một cách dễ dàng bằng cách thêm vài dòng code. Chỉ với một đoạn ngắn gọn caching có thể tạo ra một sự khác biệt rất lớn trong tốc độ load:
- Connection Pooling
Kĩ thuật này yêu cầu sử dụng một hồ chứa (pool) các kết nối đang mở. Thay vì mở mới một kết nối đến cơ sở dữ liệu cho mỗi lời gọi API.
Việc tạo mới kết nối đến cơ sở dữ liệu yêu cầu rất nhiều phương thức và thiết lập mà có thể làm giảm tốc độ truy xuất API.
Việc sử dụng lại các kết nối cải thiện tốc độ một cách đáng kể.
- Serverless Architecture
Sử dụng kĩ thuật ngày khá thách thức bởi vì mỗi hàm serverless sẽ ngay lập tức mở một kết nối cơ sở dữ liệu cho riêng nó. Và bởi vì serverless có thể scale (mở rộng hoặc thu nhỏ) cực kì nhanh có thể dẫn tới việc duy trì số lượng các kết nối đến cơ sở dữ liệu rất lớn làm cho cơ sở dữ liệu bị quá tải.
Các giải pháp như AWS RDS Proxy hoặc Azure SQL Database serverless thiết kế để xử lý tình huống này cho bạn bằng cách quản lý connection pool cho bạn.
- Pagination (phân trang)
Nếu phản hồi API trả về một lượng kết quả quá lớn có thể làm chậm mọi thứ.
Thay vào đó chia nhỏ phản hồi để dễ quản lý hơn sử dụng tham số limit và offset. Cách này có thể giúp tăng tốc độ truyền dữ liệu và tốc độ tải ở phía client.
- JSON Serialization
Khi trả kết quả JSON từ API, tốc độ tuần tự hóa (serialization) có thể tạo nên sự khác biệt đáng kể trong thời gian phản hồi. Xem xét sử dụng các thư viện tốc độ cao để chuyển dữ liệu qua bạn sang dạng JSON
- Compression (nén)
Bằng cách nén các phản hồi nặng khi gọi API, bạn có thể giảm dung lượng dữ liệu phải truyền qua mạng. Sau đó phía client sẽ giải nén dữ liệu.
- Asynchronous Logging
Trong nhiều ứng dụng việc ghi log không tốn nhiều thời gian, tuy nhiên trong các ứng dụng thông lượng cao thì mỗi mili giây đều đáng giá.
Điều này yêu cầu ứng dụng chính phải nhanh chóng đặt log vào trong bộ nhớ buffer trong khi phân tách các luồng ghi log vào files hoặc gửi tới các dịch vụ logging.
Bộ môn: Công nghệ Thông tin
Trường Cao đẳng FPT Mạng cá cược bóng đá
cơ sở Đà Nẵng