Mục tiêu của chúng tôi là luôn phân phối mọi thông báo được gửi bằng FCM. Tuy nhiên, việc gửi mọi thông báo đôi khi lại khiến người dùng có trải nghiệm không tốt. Trong các trường hợp khác, chúng tôi cần đặt ra ranh giới để đảm bảo FCM cung cấp dịch vụ có thể mở rộng cho tất cả người gửi. Các loại hạn mức và hạn ngạch được mô tả trong phần này giúp chúng tôi cân bằng những yếu tố quan trọng này.
Điều tiết thông báo hạ lưu
API HTTP phiên bản 1 đã giới thiệu hạn mức mỗi phút cho mỗi dự án đối với hoạt động nhắn tin xuôi dòng. Hạn mức mặc định là 600 nghìn thông báo mỗi phút đáp ứng nhu cầu của hơn 99% nhà phát triển FCM, đồng thời bảo vệ độ ổn định của hệ thống và giảm thiểu tác động của các dự án có lưu lượng truy cập tăng đột biến.
Mô hình lưu lượng truy cập tăng đột biến có thể dẫn đến lỗi vượt quá hạn mức. Trong trường hợp vượt quá hạn mức, hệ thống sẽ phân phát mã trạng thái HTTP 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") cho đến khi hạn mức được nạp lại trong phút tiếp theo. Phản hồi 429 cũng có thể được trả về trong các trường hợp quá tải, vì vậy, bạn nên xử lý các phản hồi 429 theo các đề xuất đã xuất bản.
Lưu ý:
- Hạn mức gửi xuống đo lường số lượng thông báo, chứ không phải số lượng yêu cầu.
- Lỗi ứng dụng (mã trạng thái HTTP 400-499) được tính (ngoại trừ 429).
- Hạn mức được tính theo phút, nhưng các phút này không được tính theo thời gian đồng hồ.
Hạn mức giám sát
Bạn có thể xem hạn mức, mức sử dụng và lỗi trong bảng điều khiển Google Cloud:
Chuyển đến bảng điều khiển Google Cloud.
Chọn API và dịch vụ.
Trong danh sách bảng, hãy chọn Firebase Cloud Messaging API.
Chọn QUOTA & SYSTEM LIMITS (HẠN MỨC VÀ GIỚI HẠN HỆ THỐNG).
Yêu cầu tăng hạn mức
Trước khi yêu cầu tăng hạn mức, hãy đảm bảo rằng:
- Mức sử dụng của bạn thường xuyên ≥ 80% hạn mức trong ít nhất 5 phút liên tục mỗi ngày.
- Bạn có tỷ lệ lỗi ứng dụng < 5%, đặc biệt là trong thời gian lưu lượng truy cập cao nhất.
- Bạn tuân thủ các phương pháp hay nhất để gửi tin nhắn trên quy mô lớn.
Nếu đáp ứng các tiêu chí này, bạn có thể gửi yêu cầu tăng hạn mức lên đến +25% trên Google Cloud Console bằng cách làm như sau:
- Chuyển đến phần HẠN MỨC VÀ GIỚI HẠN HỆ THỐNG.
- Trong bảng, hãy chọn hàng Gửi yêu cầu mỗi phút.
- Nhấp vào nút Chỉnh sửa.
- Làm theo hướng dẫn để đưa ra yêu cầu.
FCM sẽ nỗ lực hết sức để đáp ứng yêu cầu (không đảm bảo sẽ tăng được).
Nếu cần thêm hạn mức gửi thông báo xuôi dòng do sắp ra mắt hoặc do sự kiện tạm thời, bạn phải gửi yêu cầu tăng hạn mức thông qua Nhóm hỗ trợ Firebase. Hãy yêu cầu hạn mức trước ít nhất 15 ngày để chúng tôi có đủ thời gian xử lý yêu cầu. Đối với các yêu cầu lớn (>18 triệu thông báo mỗi phút), bạn phải thông báo trước ít nhất 30 ngày. Chúng tôi chỉ có thể phê duyệt 2 sự kiện hạn mức tạm thời mỗi năm. Tổng thời gian của hạn mức tạm thời trong cả năm không được vượt quá 30 ngày. Các yêu cầu về sự kiện ra mắt và sự kiện đặc biệt vẫn phải tuân theo tỷ lệ lỗi của ứng dụng và các yêu cầu về phương pháp hay nhất.
Để tìm hiểu thêm, hãy xem bài viết về hạn mức FCM.
Giới hạn thông báo theo chủ đề và điều tiết phân phối
Hãy xem Hạn mức và giới hạn về việc gửi thông báo theo chủ đề để biết thêm thông tin chi tiết.
Điều tiết thông báo có thể thu gọn
Như được mô tả trong phần Thông báo có thể thu gọn, thông báo có thể thu gọn là thông báo không có nội dung, được thiết kế để thu gọn chồng lên nhau. Trong trường hợp nhà phát triển lặp lại cùng một thông báo cho một ứng dụng quá thường xuyên, chúng tôi sẽ trì hoãn thông báo để giảm tác động đến pin của người dùng.
Ví dụ: nếu bạn gửi số lượng lớn yêu cầu đồng bộ hoá email mới đến một thiết bị duy nhất, chúng tôi có thể trì hoãn yêu cầu đồng bộ hoá email tiếp theo trong vài phút để thiết bị có thể đồng bộ hoá ở tốc độ trung bình thấp hơn. Việc điều tiết này được thực hiện nghiêm ngặt để hạn chế tác động đến pin mà người dùng gặp phải.
Nếu trường hợp sử dụng của bạn yêu cầu các mẫu gửi có mức tăng đột biến cao, thì thông báo không thể thu gọn có thể là lựa chọn phù hợp. Đối với những thông báo như vậy, hãy nhớ đưa nội dung vào thông báo để giảm mức tiêu hao pin.
Chúng tôi giới hạn số lượng thông báo có thể thu gọn ở mức 20 thông báo cho mỗi ứng dụng trên mỗi thiết bị, với tần suất bổ sung là 1 thông báo sau mỗi 3 phút.
Tốc độ gửi tin nhắn tối đa đến một thiết bị
Đối với Android, bạn có thể gửi tối đa 240 tin nhắn mỗi phút và 5.000 tin nhắn mỗi giờ đến một thiết bị. Ngưỡng cao này nhằm cho phép lưu lượng truy cập tăng đột biến trong thời gian ngắn, chẳng hạn như khi người dùng tương tác nhanh qua cuộc trò chuyện. Giới hạn này giúp ngăn chặn lỗi trong logic gửi vô tình làm tiêu hao pin trên thiết bị.
Đối với iOS, chúng tôi sẽ trả về lỗi khi tốc độ vượt quá giới hạn APNs.