Vì Google Chat API là một dịch vụ dùng chung, nên chúng tôi áp dụng hạn mức và giới hạn để đảm bảo tất cả người dùng đều sử dụng API này một cách công bằng và để bảo vệ hiệu suất tổng thể của Google Workspace.
Nếu vượt quá hạn mức, bạn sẽ nhận được phản hồi mã trạng thái HTTP 429: Too many requests
. Các bước kiểm tra hạn mức bổ sung trên phần phụ trợ Chat cũng có thể tạo ra cùng một phản hồi lỗi. Nếu gặp lỗi này, bạn nên sử dụng thuật toán thời gian chờ luỹ tiến và thử lại sau. Miễn là bạn không vượt quá hạn mức mỗi phút được liệt kê trong các bảng sau, bạn có thể gửi bao nhiêu yêu cầu tuỳ ý mỗi ngày.
Có thể áp dụng nhiều loại hạn mức cho các phương thức Chat API: hạn mức theo dự án, theo không gian và theo người dùng.
Hạn mức cho mỗi dự án
Hạn mức cho mỗi dự án giới hạn tốc độ truy vấn cho một dự án Google Cloud, do đó, hạn mức này áp dụng cho một ứng dụng Chat duy nhất gọi các phương thức Chat API được chỉ định cho mỗi hạn mức.
Bảng sau đây trình bày chi tiết hạn mức truy vấn cho mỗi dự án. Bạn cũng có thể xem các giới hạn này trên trang Hạn mức.
Hạn mức cho mỗi dự án |
Các phương thức Chat API |
Giới hạn (mỗi 60 giây) |
---|---|---|
Số lượt ghi thư mỗi phút |
|
3000 |
Số tin nhắn đọc được mỗi phút |
|
3000 |
Số lượt viết của hội viên mỗi phút |
|
300 |
Số lượt đọc mỗi phút của hội viên |
|
3000 |
Số lượt ghi vào không gian mỗi phút |
|
60 |
Số lần đọc khoảng trống mỗi phút |
|
3000 |
Số lượt ghi tệp đính kèm mỗi phút |
|
600 |
Số lần đọc tệp đính kèm mỗi phút |
|
3000 |
Số lượt thể hiện cảm xúc mỗi phút |
|
600 |
Số lượt thể hiện cảm xúc mỗi phút |
|
3000 |
Hạn mức theo không gian
Hạn mức cho mỗi không gian giới hạn tốc độ truy vấn trong một không gian nhất định và được chia sẻ giữa tất cả các ứng dụng Chat hoạt động trong không gian đó khi gọi các phương thức Chat API được liệt kê cho mỗi hạn mức.
Bảng sau đây trình bày chi tiết các giới hạn về truy vấn theo không gian:
Hạn mức cho mỗi không gian |
Các phương thức Chat API |
Giới hạn (mỗi 60 giây) |
---|---|---|
Số lượt đọc mỗi phút |
|
900 |
Số lượt ghi mỗi phút |
|
60 |
Hạn mức trên mỗi người dùng
Hạn mức cho mỗi người dùng giới hạn tốc độ truy vấn cho một người dùng Google Chat. Các truy vấn liên quan đến tất cả ứng dụng Chat gọi một phương thức API Chat thay cho người dùng (bằng cách sử dụng xác thực người dùng).
Bảng sau đây trình bày chi tiết giới hạn truy vấn cho mỗi người dùng:
Hạn mức cho mỗi người dùng |
Các phương thức Chat API |
Giới hạn (mỗi 60 giây) |
---|---|---|
Số lượt đọc mỗi phút |
|
900 |
Số lượt ghi mỗi phút |
|
60 |
Hạn mức sử dụng bổ sung
Có thêm hạn mức để tạo không gian thuộc loại GROUP_CHAT
hoặc SPACE
(bằng cách sử dụng phương thức spaces.create
hoặc spaces.setup
).
Tạo ít hơn 35 không gian mỗi phút và 800 không gian mỗi giờ đối với các loại không gian này. Không gian thuộc loại DIRECT_MESSAGE
không phải tuân theo những hạn mức bổ sung này.
Lưu lượng truy cập API cao nhắm đến cùng một không gian có thể kích hoạt các giới hạn nội bộ bổ sung không xuất hiện trên trang Hạn mức.
Giải quyết lỗi hạn mức dựa trên thời gian
Đối với tất cả các lỗi dựa trên thời gian (tối đa N yêu cầu trong X phút), bạn nên để mã của mình bắt lỗi ngoại lệ và sử dụng thuật toán giảm thời gian chờ theo hàm mũ để đảm bảo thiết bị của bạn không tạo ra tải quá mức.
Thuật toán thời gian đợi luỹ thừa là một chiến lược xử lý sai số chuẩn cho các ứng dụng mạng. Thuật toán thời gian đợi luỹ thừa sẽ thử lại các yêu cầu bằng cách tăng thời gian chờ theo cấp số nhân giữa các yêu cầu, tối đa là thời gian đợi luỹ thừa. Nếu yêu cầu vẫn không thành công, thì điều quan trọng là độ trễ giữa các yêu cầu phải tăng theo thời gian cho đến khi yêu cầu thành công.
Thuật toán mẫu
Thuật toán thời gian đợi luỹ thừa sẽ thử lại các yêu cầu theo cấp số nhân, tăng thời gian chờ giữa các lần thử lại cho đến thời gian đợi tối đa. Ví dụ:
- Gửi yêu cầu đến API Google Chat.
- Nếu yêu cầu không thành công, hãy đợi 1 +
random_number_milliseconds
rồi thử lại yêu cầu. - Nếu yêu cầu không thành công, hãy đợi 2 +
random_number_milliseconds
rồi thử lại yêu cầu. - Nếu yêu cầu không thành công, hãy đợi 4 +
random_number_milliseconds
rồi thử lại yêu cầu. - Và cứ như vậy, tối đa
maximum_backoff
lần. - Tiếp tục đợi và thử lại cho đến khi đạt đến số lần thử lại tối đa, nhưng không tăng khoảng thời gian chờ giữa các lần thử lại.
trong đó:
- Thời gian chờ là
min(((2^n)+random_number_milliseconds), maximum_backoff)
, vớin
tăng thêm 1 cho mỗi lần lặp (yêu cầu). random_number_milliseconds
là một số mili giây ngẫu nhiên nhỏ hơn hoặc bằng 1.000. Điều này giúp tránh trường hợp nhiều ứng dụng được đồng bộ hoá theo một số tình huống và tất cả đều thử lại cùng một lúc, gửi yêu cầu theo đợt đồng bộ hoá. Giá trị củarandom_number_milliseconds
được tính toán lại sau mỗi yêu cầu thử lại.maximum_backoff
thường là 32 hoặc 64 giây. Giá trị phù hợp phụ thuộc vào trường hợp sử dụng.
Ứng dụng có thể tiếp tục thử lại sau khi đạt đến thời gian maximum_backoff
.
Các lần thử lại sau thời điểm này không cần tiếp tục tăng thời gian tạm ngưng. Ví dụ: nếu một ứng dụng sử dụng thời gian maximum_backoff
là 64 giây, thì sau khi đạt đến giá trị này, ứng dụng có thể thử lại sau mỗi 64 giây. Tại một thời điểm nào đó, các ứng dụng không được phép thử lại vô thời hạn.
Thời gian chờ giữa các lần thử lại và số lần thử lại phụ thuộc vào trường hợp sử dụng và điều kiện mạng của bạn.
Yêu cầu tăng hạn mức cho mỗi dự án
Tuỳ thuộc vào mức sử dụng tài nguyên của dự án, bạn có thể muốn yêu cầu điều chỉnh hạn mức. Các lệnh gọi API của một tài khoản dịch vụ được coi là đang sử dụng một tài khoản duy nhất. Việc đăng ký hạn mức điều chỉnh không đảm bảo rằng bạn sẽ được phê duyệt. Các yêu cầu điều chỉnh hạn mức làm tăng đáng kể giá trị hạn mức có thể mất nhiều thời gian hơn để được phê duyệt.
Không phải dự án nào cũng có hạn mức giống nhau. Khi bạn ngày càng sử dụng Google Cloud, các giá trị hạn mức có thể cần tăng lên. Nếu dự kiến mức sử dụng sẽ tăng đáng kể trong thời gian tới, bạn có thể chủ động yêu cầu điều chỉnh hạn mức trên trang Hạn mức trong Google Cloud Console.
Để tìm hiểu thêm, hãy xem các tài nguyên sau:
- Giới thiệu về việc điều chỉnh hạn mức
- Xem hạn mức sử dụng và giới hạn hiện tại của bạn
- Yêu cầu tăng hạn mức sử dụng