Quản lý hạn mức

API Lịch Google có cá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ó ba 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 theo từng dự án và mỗi người dùng. Xem phần tiếp theo để biết thêm thông tin.
  • Hạn mức sử dụng chung của Lịch: Tránh Giới hạn sử dụng Lịch.
  • Giới hạn hoạt động: bạn có thể bị giới hạn số lượng yêu cầu bất cứ lúc nào. Ví dụ: nếu bạn cố gắng ghi nhanh vào một lịch duy nhất.

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

Hai loại hạn mức được thực thi:

  • Mỗi phút trên mỗi dự án: Đây là số lượng yêu cầu mà dự án của bạn trên Google Cloud đưa ra.
  • Mỗi phút trên mỗi dự án/người dùng: Đây là số lượng yêu cầu mà một người dùng cụ thể trong dự án trên Google Cloud của bạn đưa ra. Hạn mức này nhằm giúp bạn đảm bảo phân phối sử dụng hợp lý giữa những người dùng.

Hạn mức được tính mỗi phút bằng cách sử dụng cửa sổ trượt, do đó, việc tăng đột biến lưu lượng truy cập vượt quá hạn mức trên mỗi phút trong vòng một phút sẽ dẫn đến việc giới hạn tốc độ trong thời gian tiếp theo nhằm đả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, bạn sẽ bị giới hạn số lượng yêu cầu và sẽ nhận được mã trạng thái 403 usageLimits hoặc mã trạng thái 429 usageLimits cho truy vấn của mình. Nếu điều này xảy ra, dưới đây là những việc bạn có thể làm:

  1. Hãy nhớ làm theo mọi 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 cho mỗi dự án.
  3. Nếu đã đạt đến hạn mức trên mỗi 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 phân chia tải cho 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 cho mỗi người dùng, nhưng nhìn chung, bạn không nên tăng hạn mức này trên giá trị mặc định vì ứng dụng có thể bắt đầu đạt đến các loại giới hạn khác, chẳng hạn như hạn mức 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 403 "usageLimits" 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à chúng tôi hy vọng bạn sẽ thử lại yêu cầu sau một khoảng thời gian ngắn. Nếu yêu cầu vẫn đến quá nhanh, chúng tôi sẽ hỏi lại và cứ tiếp tục như vậy. Để quá trình này hoạt động chính xác, điều quan trọng là độ trễ giữa các yêu cầu tăng lên theo thời gian.

Nhìn chung, bạn nên sử dụng tính năng thời gian đợi luỹ thừa bị cắt ngắn; tài liệu về Cloud Storage có nội dung giải thích rõ ràng về cách hoạt động của tính năng này và thuật toán ưu tiên. Nếu bạn đang sử dụng thư viện ứng dụng của 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 phương thức triển khai thư viện thay vì tự viết phương thức triển khai.

Chọn ngẫu nhiên các dạng lưu lượng truy cập

Các ứng dụng Lịch dễ xảy ra tình trạng lưu lượng truy cập tăng đột biến do nhiều ứng dụng thực hiện các hoạt động cùng lúc. Ví dụ: một ứng dụng không hợp lệ phổ biến đối với ứng dụng Lịch là thực hiện đồng bộ hoá toàn bộ 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, dẫn đến việc giới hạn số lượng yêu cầu và thời gian đợi.

Để tránh điều này, hãy đảm bảo lưu lượng truy cập của bạn được trải đều suốt cả ngày bất cứ khi nào có thể. Nếu ứng dụng của bạn cần thực hiệ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 (tuỳ thuộc vào 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 là +/- 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 người dùng tốt hơn nhiều.

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

Một trường hợp sử dụng phổ biến là khi muốn thực hiện một hành động bất cứ khi nào có thay đổi trong lịch của người dùng. Phản mẫu ở đây là thăm dò liên tục mọi lịch mà bạn quan tâm. Thao tá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ó 5.000 người dùng và thăm dò lịch của mỗi người dùng mỗi phút một lần, thì việc này sẽ yêu cầu hạn mức mỗi phút tối thiểu là 5.000 người, ngay cả trước khi hoàn tất 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ì đó đáng quan tâm xảy ra. Các chế độ này đòi hỏi nhiều thao tác thiết lập hơn, 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 người dùng tốt hơn. Hãy đảm bảo bạn chỉ định eventType mà bạn muốn nhận thông báo. Để biết thêm thông tin, vui lòng xem phần 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 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ẽ được tính phí theo hạn mức "mỗi phút cho mỗi dự á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 số lượng yêu cầu, ngay cả khi tài khoản đó có thể đang hoạt động trên nhiều lịch của nhiều 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í. Thông số này chỉ được dùng để tính toán hạn mức. Hãy xem phần Giới hạn số yêu cầu đối với mỗi người dùng trong tài liệu về Google Cloud để biết thêm thông tin.

Kiểm thử khả năng xử lý hạn mức

Để đảm bảo ứng dụng của bạn có thể xử lý linh hoạt việc đạt đến giới hạn 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ử tình huống này trong môi trường thực tế.

Để quy trình kiểm thử đó không ảnh hưởng đến việc sử dụng ứng dụng thực tế của bạn, bạn nên đăng ký một dự án chỉ dành cho kiểm thử riêng trong Google API Consoleđịnh cấu hình dự án đó theo cách tương tự như dự án phát hành chính thức. Sau đó, bạn có thể đặt giới hạn thấp 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 không mất thêm phí. Khi vượt quá hạn mức yêu cầu, bạn 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í.