Quản lý hạn mức

API Lịch Google có hạn mức để đảm bảo rằng tất cả người dùng đều sử dụng API này một cách công bằng. Có 3 giới hạn quan trọng cần cân nhắc khi sử dụng API Lịch:

  • Hạn mức sử dụng API được thực thi cho mỗi dự án và mỗi người dùng. Hãy xem phần tiếp theo để biết thêm thông tin.
  • Giới hạn chung về việc sử dụng Lịch: Tránh vượt quá giới hạn sử dụng Lịch.
  • Hạn mức hoạt động: bạn có thể bị giới hạn tốc độ bất cứ lúc nào. Ví dụ: nếu bạn cố gắng ghi vào một lịch liên tiếp nhanh chóng.

Các loại hạn mức sử dụng API Lịch

Có hai loại hạn mức được thực thi:

  • Mỗi phút cho mỗi dự án: Đây là số lượng yêu cầu mà dự án Google Cloud của bạn thực hiện.
  • Mỗi phút, mỗi dự án, mỗi người dùng: Đây là số lượng yêu cầu do một người dùng cụ thể thực hiện trong dự án trên Cloud của bạn. Mục đích của giới hạn này là giúp bạn đảm bảo việc phân phối công bằng mức sử dụng giữa người dùng.

Hạn mức được tính theo phút bằng cách sử dụng cửa sổ trượt. Vì vậy, nếu lưu lượng truy cập tăng đột biến và vượt quá hạn mức theo phút trong một phút, thì hệ thống sẽ giới hạn tốc độ trong cửa sổ tiếp theo để đảm bảo rằng mức sử dụng trung bình của bạn vẫn nằm trong hạn mức.

Nếu vượt quá một trong hai hạn mức này, bạn sẽ bị giới hạn tốc độ và nhận được mã trạng thái 403 usageLimits hoặc mã trạng thái 429 usageLimits cho các truy vấn của mình. Nếu điều này xảy ra, bạn có thể làm như sau:

  1. Hãy nhớ làm theo tất cả các phương pháp hay nhất: sử dụng thời gian đợi luỹ thừa, sắp xếp ngẫu nhiên các mẫu lưu lượng truy cập, sử dụng thông báo đẩy.
  2. Nếu dự án của bạn đang phát triển và bạn có nhiều người dùng hơn, bạn có thể yêu cầu tăng hạn mức trên mỗi dự án.
  3. Nếu đạt đến hạn mức hạn mức theo người dùng, bạn có thể làm như sau:
    • Nếu bạn sử dụng tài khoản dịch vụ, hãy phân bổ tải cho người dùng hoặc chia tải giữa nhiều tài khoản dịch vụ.
    • Mặc dù bạn có thể yêu cầu tăng hạn mức trên mỗi người dùng, nhưng nói chung, bạn không nên tăng hạn mức này lên trên giá trị mặc định vì ứng dụng của bạn có thể bắt đầu gặp phải các loại giới hạn khác, chẳng hạn như giới hạn sử dụng lịch chung hoặc giới hạn hoạt động.

Yêu cầu tăng hạn mức

Để xem hoặc thay đổi hạn mức sử dụng cho dự án hoặc để yêu cầu tăng hạn mức, hãy làm như sau:

  1. Nếu bạn chưa có tài khoản thanh toán cho dự án của mình, hãy tạo một tài khoản.
  2. Truy cập trang API đã bật của thư viện API trong Bảng điều khiển API, chọn một API từ danh sách.
  3. Để xem và thay đổi chế độ cài đặt liên quan đến hạn mức, hãy chọn Hạn mức. Để xem thống kê sử dụng, hãy chọn Mức sử dụng.

Sử dụng thuật toán thời gian đợi luỹ thừa

Khi muốn bạn giảm tốc độ yêu cầu, chúng tôi sẽ trả về phản hồi "usageLimits" 403 hoặc phản hồi 429 (xem tài liệu đầy đủ về lỗi). Đây không phải là lỗi nghiêm trọng và bạn nên thử lại yêu cầu sau một khoảng thời gian ngắn. Nếu các yêu cầu vẫn đến quá nhanh, chúng tôi sẽ yêu cầu lại, v.v. Để tính năng này hoạt động chính xác, điều quan trọng là độ trễ giữa các yêu cầu phải tăng lên theo thời gian.

Nhìn chung, bạn nên sử dụng thời gian đợi lũy thừa bị cắt bớt; tài liệu về Bộ nhớ trên đám mây giải thích rõ cách hoạt động của phương thức này và thuật toán ưu tiên. Nếu bạn đang sử dụng thư viện ứng dụng Google, thì việc này thường sẽ được xử lý cho bạn; hãy tham khảo tài liệu về thư viện của bạn. Thông thường, bạn nên sử dụng cách triển khai thư viện thay vì tự viết.

Sắp xếp ngẫu nhiên các mẫu lưu lượng truy cập

Ứng dụng lịch dễ gặp phải các mẫu lưu lượng truy cập tăng đột biến do nhiều ứng dụng thực hiện các thao tác cùng một lúc. Ví dụ: một phương pháp phổ biến không tốt cho ứng dụng Lịch là thực hiện đồng bộ hoá đầy đủ vào lúc nửa đêm. Điều này gần như chắc chắn sẽ dẫn đến việc vượt quá hạn mức mỗi phút và dẫn đến việc giới hạn tốc độ và thời gian đợi.

Để tránh điều này, hãy đảm bảo rằng lưu lượng truy cập của bạn được phân bổ đều trong ngày nếu có thể. Nếu ứng dụng của bạn cần đồng bộ hoá hằng ngày, hãy yêu cầu ứng dụng xác định một thời gian ngẫu nhiên (khác nhau cho từng ứng dụng). Nếu bạn cần thực hiện một thao tác thường xuyên, hãy thay đổi khoảng thời gian +/- 25%. Điều này sẽ phân phối lưu lượng truy cập đồng đều hơn và mang lại trải nghiệm tốt hơn cho người dùng.

Sử dụng thông báo đẩy

Một trường hợp sử dụng phổ biến là muốn thực hiện một hành động bất cứ khi nào có gì thay đổi trong lịch của người dùng. Một mẫu chống lại ở đây là thăm dò ý kiến lặp lại mọi lịch mà bạn quan tâm. Việc này sẽ nhanh chóng sử dụng hết hạn mức của bạn. Ví dụ: nếu ứng dụng của bạn có 5.000 người dùng và thăm dò ý kiến về lịch của mỗi người dùng một lần mỗi phút, thì bạn sẽ cần có hạn mức mỗi phút ít nhất là 5.000 ngay cả trước khi thực hiện bất kỳ công việc nào.

Các ứng dụng phía máy chủ có thể đăng ký thông báo đẩy, cho phép chúng tôi thông báo cho bạn khi có điều gì đó thú vị xảy ra. Các phương thức này đòi hỏi nhiều công sức hơn để thiết lập, nhưng cho phép sử dụng hạn mức hiệu quả hơn đáng kể và mang lại trải nghiệm tốt hơn cho người dùng. Hãy nhớ chỉ định eventType mà bạn muốn nhận thông báo. Để biết thêm thông tin, hãy xem bài viết Thông báo đẩy.

Kế toán đúng cách bằng tài khoản dịch vụ

Nếu ứng dụng của bạn đang thực hiện các yêu cầu bằng cách sử dụng tính năng uỷ quyền trên toàn miền, thì theo mặc định, tài khoản dịch vụ sẽ bị tính phí theo hạn mức "mỗi phút trên mỗi dự án trên mỗi người dùng", chứ không phải người dùng mà bạn đang mạo danh. Điều này có nghĩa là tài khoản dịch vụ có thể sẽ hết hạn mức và bị giới hạn tốc độ, mặc dù tài khoản này có thể đang hoạt động trên nhiều lịch của người dùng. Bạn có thể tránh điều này bằng cách sử dụng tham số URL quotaUser (hoặc tiêu đề HTTP x-goog-quota-user) để cho biết người dùng nào sẽ bị tính phí. Giá trị này chỉ được dùng để tính hạn mức. Hãy xem phần Giới hạn số yêu cầu trên mỗi người dùng trong tài liệu về Google Cloud để biết thêm thông tin.

Kiểm thử việc xử lý hạn mức hạn mức

Để đảm bảo rằng ứng dụng của bạn có thể xử lý linh hoạt việc đạt đến hạn mức hạn mức trong thực tế (ví dụ: bằng cách thử lại bằng thuật toán thời gian đợi luỹ thừa) và để giảm thiểu mọi sự gián đoạn có thể xảy ra cho người dùng, bạn nên kiểm thử trường hợp này trong môi trường thực tế.

Để quá trình kiểm thử như vậy không ảnh hưởng đến việc sử dụng ứng dụng thực tế, bạn nên đăng ký một dự án chỉ dành cho kiểm thử riêng biệt trong Google API Consoleđịnh cấu hình dự án đó theo cách tương tự như dự án phát hành công khai. Sau đó, bạn có thể đặt hạn mức thấp một cách giả tạo cho dự án này và quan sát hành vi của ứng dụng.

Giá

Mọi hoạt động sử dụng API Lịch Google đều được cung cấp miễn phí. Việc vượt quá hạn mức yêu cầu hạn mức sẽ không bị tính thêm phí và tài khoản của bạn sẽ không bị tính phí.