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
  • Yêu cầu mặc định: 300 QPM
  • Tạo yêu cầu về Vị trí: 300 QPD
  • Yêu cầu SearchGoogleLocation: 300 QPD
  • Yêu cầu cập nhật vị trí: 10.000 QPD
  • Chỉnh sửa: 10 lần mỗi phút cho mỗi Trang doanh nghiệp trên Google (không thể tăng số lần này)
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.

  1. Chọn Yêu cầu tăng hạn mức trong trình đơn thả xuống.
  2. Cung cấp Tên công ty, Email liên hệ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.