Hạn mức
Để đảm bảo sử dụng công bằng và bảo vệ tính ổn định của hệ thống, các API GBP (Trang doanh nghiệp trên Google) sẽ áp dụng hạn mức cho các yêu cầu API. Nếu yêu cầu của bạn vượt quá hạn mức, API sẽ phản hồi bằng mã trạng thái HTTP 429 Too Many Requests (hoặc RESOURCE_EXHAUSTED đối với gRPC).
Hạn mức mặc định
Bảng sau đây liệt kê hạn mức tiêu chuẩn cho API Trang doanh nghiệp trên Google. Giới hạn được xác định theo 2 phương diện:
- Số lượng truy vấn mỗi phút (QPM): Bảo vệ tính ổn định của phần phụ trợ bằng cách giới hạn lưu lượng truy cập tăng đột biến trong thời gian ngắn.
- Số lượt truy vấn mỗi ngày (QPD): Quản lý mức sử dụng nền tảng tổng thể hằng ngày.
| API | Giới hạn |
|---|---|
| API Thông tin doanh nghiệp |
|
| API Quản lý tài khoản | 300 QPM |
| Performance API | 300 QPM |
| API Xác minh | 300 QPM |
| API Lưu trú | 300 QPM |
| API Hành động tại địa điểm | 300 QPM |
| API Thông báo | 300 QPM |
Các phương pháp hay nhất để tránh lỗi về hạn mức
Việc phân phối các yêu cầu liên tục và đồng đều trong suốt cả ngày sẽ ngăn chặn phần lớn các lỗi hạn mức. Hãy làm theo các phương pháp hay nhất này để đảm bảo ứng dụng của bạn đồng bộ hoá dữ liệu một cách đáng tin cậy.
Gửi yêu cầu một cách đều đặn
Thay vì gửi một loạt yêu cầu lớn cùng một lúc, hãy phân phối các yêu cầu của bạn trong một khoảng thời gian dài hơn. Ví dụ: giới hạn 300 QPM tương đương với trung bình 5 yêu cầu mỗi giây. Việc giới thiệu một độ trễ ngắn giữa các yêu cầu giúp ngăn chặn tình trạng lưu lượng truy cập tăng đột biến.
Traffic distribution patterns:
Spiky traffic (Discouraged): High burst of requests followed by an idle period
Requests | ||| |||
| ||| |||
+---------------------------------
Time ──>
Even traffic (Recommended): Consistent rate of requests over time
Requests | | | | | | | | | |
| | | | | | | | | |
+---------------------------------
Time ──>import time # Pace requests to stay within the 300 QPM limit (5 requests/sec) for request in batch_requests: send_request(request) time.sleep(0.2) # 200ms delay ensures a smooth distribution
Triển khai thuật toán thời gian đợi luỹ thừa có độ trễ ngẫu nhiên
Khi bạn nhận được lỗi 429 Too Many Requests, hãy sử dụng thuật toán đợi luỹ thừa có độ trễ để tự động thử lại yêu cầu. Phương pháp tiêu chuẩn này bao gồm việc chờ một khoảng thời gian ngắn ngẫu nhiên trước khi thử lại và tăng dần độ trễ cho các lần thử lại tiếp theo.
import random import time from googleapiclient.errors import HttpError def call_api_with_retry(api_method, max_retries=5): base_delay = 1.0 for attempt in range(max_retries): try: return api_method.execute() except HttpError as e: if e.resp.status == 429: if attempt == max_retries - 1: raise e # Retry with exponential backoff and jitter sleep_time = random.uniform(0, base_delay * (2 ** attempt)) time.sleep(sleep_time) else: raise e
Tối ưu hoá quyền truy cập dữ liệu
- Lưu dữ liệu tĩnh vào bộ nhớ đệm: Lưu trữ dữ liệu ít thay đổi ở thiết bị cục bộ thay vì truy vấn API nhiều lần.
- Sử dụng thông báo Pub/Sub: Đăng ký nhận thông báo Pub/Sub để cơ sở dữ liệu của bạn luôn được cập nhật theo thời gian thực mà không cần thăm dò API.
-
Xử lý các điểm cuối có nhiều lượt đọc theo trình tự: Tránh thực thi nhiều yêu cầu đồng thời đến các điểm cuối có nhiều lượt đọc như
SearchListings. Thay vào đó, hãy xử lý các tác vụ tuần tự bằng cách sử dụng mã thông báo phân trang.
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 xác minh các mẫu sử dụng của bạn trong Google Cloud Console để đảm bảo số lượng yêu cầu của bạn không bị phân cụm một cách không cần thiết.
Nhóm Trang doanh nghiệp trên Google sẽ theo dõi mức sử dụng hạn mức trung bình của bạn để đảm bảo bạn đang sử dụng hiệu quả hạn mức hiện tại. Yêu cầu tăng hạn mức thường bị từ chối nếu:
- Ứng dụng của bạn không đạt được giới hạn QPM hiện tại một cách nhất quán.
- Mức sử dụng trung bình của bạn thấp hơn 50% hạn mức QPM hiện tại.
- Ứng dụng của bạn cho thấy một mẫu yêu cầu có độ biến động cao thay vì phân phối mượt mà.
Gửi yêu cầu
Nếu bạn đã triển khai những phương pháp hay nhất này và vẫn cần hạn mức cao hơn, hãy gửi Yêu cầu tăng hạn mức.
- Chọn Yêu cầu tăng hạn mức trong trình đơn thả xuống.
- Cung cấp Tên công ty, Email liên hệ và Số dự án.
Sau khi bạn gửi biểu mẫu, nhóm Trang doanh nghiệp trên Google sẽ xem xét yêu cầu của bạn và xác định xem việc tăng hạn mức có phù hợp hay không. Nếu yêu cầu được phê duyệt, hạn mức sẽ tăng lên. Nếu yêu cầu bị từ chối, bạn sẽ nhận được lý do từ chối.