Vì API Google Chat là một dịch vụ dùng chung nên chúng tôi áp dụng các hạn mức và giới hạn đối với đảm bảo rằng tính năng này được tất cả người dùng sử dụng công bằng và để bảo vệ hiệu suất của Google Workspace.
Nếu vượt quá hạn mức, bạn sẽ nhận được một HTTP 429: Too many requests
phản hồi của mã trạng thái. Các lượt kiểm tra giới hạn số lần yêu cầu bổ sung trên Chat
phần phụ trợ cũng có thể tạo ra phản hồi lỗi tương tự. Nếu lỗi này xảy ra, bạn
nên sử dụng
thuật toán thời gian đợi luỹ thừa
rồi 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
bảng sau, không có giới hạn về số lượng yêu cầu bạn có thể thực hiện
mỗi ngày.
Hai loại hạn mức áp dụng cho các phương thức API Chat: theo từng không gian và theo dự án hạn mức.
Hạn mức trên mỗi không gian
Hạn mức trên mỗi không gian sẽ giới hạn tỷ lệ truy vấn trong một không gian nhất định và được dùng chung giữa tất cả các ứng dụng Chat hoạt động trong không gian đó bằng cách gọi Các phương thức API Chat cho từng hạn mức.
Bảng sau đây trình bày thông tin chi tiết về giới hạn truy vấn cho mỗi không gian:
Hạn mức trên mỗi không gian |
Phương thức API Chat |
Giới hạn (mỗi 60 giây, được chia sẻ |
---|---|---|
Số lần đọc mỗi phút |
|
900 |
Ghi mỗi phút |
|
60 |
Hạn mức cho mỗi dự án
Hạn mức của mỗi dự án giới hạn tỷ lệ truy vấn đối với một dự án Google Cloud, và do đó, áp dụng cho một ứng dụng trong Chat gọi hàm Các phương thức API Chat cho từng hạn mức.
Bảng dưới đây trình bày thông tin chi tiết về các giới hạn truy vấn theo từng dự án. Bạn cũng có thể tìm thấy các giới hạn này trên trang Hạn mức.
Hạn mức theo từng dự án |
Phương thức API Chat |
Giới hạn (mỗi 60 giây) |
---|---|---|
Số tin nhắn ghi mỗi phút |
|
3000 |
Số lần đọc tin nhắn mỗi phút |
|
3000 |
Số lượt ghi từ gói thành viên mỗi phút |
|
300 |
Số lần đọc gói thành viên mỗi phút |
|
3000 |
Số lần ghi trên mỗi phút của không gian |
|
60 |
Số lần đọc không gian mỗi phút |
|
3000 |
Số lần 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 |
Ghi phản ứng mỗi phút |
|
600 |
Số lần đọc phản ứng mỗi phút |
|
3000 |
Hạn mức sử dụng bổ sung
Có thêm hạn mức khi 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 dưới 35 không gian mỗi phút và 210 dấu cách mỗi phút
giờ của các loại này. Các không gian thuộc loại DIRECT_MESSAGE
không tuân theo các tiêu chí này
hạn mức bổ sung.
Truy vấn lớn mỗi giây (QPS) của bất kỳ API nào nhắm đến cùng một không gian đều có thể kích hoạt các giới hạn nội bộ bổ sung không hiển thị trong 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 mỗi X phút), bạn nên mã của bạn phát hiện được ngoại lệ và sử dụng tính năng thuật toán thời gian đợi luỹ thừa để đảm bảo không tạo ra quá tải trọng.
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. Một thuật toán thời gian đợi luỹ thừa thử lại các yêu cầu bằng cách sử dụng thời gian chờ tăng dần theo cấp số nhân giữa các yêu cầu, lên tới thời gian đợi tối đa. Nếu yêu cầu vẫn không thành công, thì nguyên nhân có nghĩa là điều quan trọng là độ trễ giữa các yêu cầu tăng theo thời gian cho đến khi yêu cầu thành công.
Thuật toán ví dụ
Thuật toán thời gian đợi luỹ thừa thử lại yêu cầu theo cấp số nhân, làm 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ứ tiếp tục như vậy, tối đa
maximum_backoff
lần. - Tiếp tục chờ và thử lại cho đến khi đạt đến số lần thử lại tối đa, nhưng đừng tăng thời gian chờ khoảng thời gian 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 1.000. Điều này giúp tránh các trường hợp trong đó nhiều ứng dụng khách được đồng bộ hoá bằng một số tình huống và tất cả thử lại cùng một lúc, gửi yêu cầu được đồng bộ hoá . Giá trị củarandom_number_milliseconds
sẽ được tính toán lại sau mỗi lần yêu cầu thử lại.maximum_backoff
thường dài 32 hoặc 64 giây. Giá trị phù hợp tuỳ 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 đã đế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 đợi. Cho
ví dụ: nếu khách hàng sử dụng thời gian maximum_backoff
là 64 giây, thì sau khi tiếp cận
giá trị này thì ứng dụng có thể thử lại sau mỗi 64 giây. Vào một thời điểm nào đó,
khách hàng không được thử lại vô thời hạn.
Thời gian chờ giữa số lần thử lại và số lần thử lại phụ thuộc vào trường hợp sử dụng của bạn và điều kiện mạng.
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 nên yêu cầu một hạn mức tăng lên. Lệnh gọi API của tài khoản dịch vụ được coi là sử dụng tài khoản duy nhất. Việc đăng ký tăng hạn mức không đảm bảo rằng tài khoản của bạn sẽ được phê duyệt. Lớn việc tăng 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. Vì bạn ngày càng sử dụng Google Cloud thì bạn có thể cần tăng hạn mức. Nếu bạn mong đợi một sự kiện đáng chú ý sắp tới mức sử dụng tăng lên, 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 bảng điều khiển Google Cloud.
Để tìm hiểu thêm, hãy xem các tài nguyên sau:
- Giới thiệu về yêu cầu tăng 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 nâng hạn mức