Chuyển đến nội dung

Sắp diễn ra: Siêu sale 11.11 · giảm 31% từ ngày 11/11. Mã có hiệu lực khi chương trình bắt đầu.

Xem bảng giá

Hiểu giới hạn tần suất và cách xử lý lỗi trong API Kencang.in

Hiểu giới hạn tần suất và cách xử lý lỗi trong API Kencang.in

Tích hợp tốt không chỉ hoạt động khi mọi thứ suôn sẻ mà còn biết phải làm gì khi máy chủ từ chối yêu cầu. Bài viết này thảo luận về hai điều thường gây ra sự cố nhất khi tích hợp API Kencang.in: vượt quá giới hạn tần suất và hiểu sai lỗi.

Giới hạn tần suất hoạt động như thế nào

Giới hạn tần suất giới hạn số lượng yêu cầu mỗi phút cho mỗi khóa API. Mục tiêu là duy trì sự ổn định của dịch vụ cho tất cả người dùng. Các giới hạn tùy thuộc vào gói: Pro nhận được 60 yêu cầu mỗi phút, Business 300 mỗi phút; chi tiết có trên trang bảng giá. Số lượng đặt lại mỗi phút (cửa sổ cố định), không phải cửa sổ dịch chuyển.

Mỗi phản hồi bao gồm các tiêu đề:

  • X-RateLimit-Limit: giới hạn mỗi phút cho khóa của bạn.
  • X-RateLimit-Remaining: các yêu cầu còn lại tại phút chạy.
  • Retry-After: chỉ trên phản hồi 429, số giây trước khi bạn có thể thử lại. Tiêu đề này được chuẩn hóa trong MDN.

Chiến lược tránh gặp mã 429

  1. Lô hàng về phía bạn. Nếu bạn cần tạo 500 liên kết, đừng kích hoạt tất cả chúng cùng một lúc. Xếp hàng và xử lý theo giới hạn, ví dụ 50 mỗi phút với các khoảng nghỉ chẵn.
  2. Bộ đệm kết quả. Dữ liệu hiếm khi thay đổi, chẳng hạn như danh sách tên miền hoặc chi tiết liên kết, không cần phải yêu cầu nhiều lần.
  3. Sử dụng điểm cuối danh sách được phân trang thay vì gọi ra từng chi tiết một.
  4. Màn hình X-RateLimit-Remaining và chủ động giảm tốc khi gần về không.

Xử lý 429 với độ trễ theo cấp số nhân

Khi nhận được 429 hãy tôn trọng nó Retry-After. Nếu thiếu tiêu đề, hãy sử dụng thời gian chờ theo cấp số nhân: đợi 1, 2, 4, 8 giây, cộng với hiện tượng biến động ngẫu nhiên để nhiều khách hàng không thử lại trong cùng một giây. Mô hình này được khuyến khích rộng rãi, kể cả trong Hướng dẫn thử lại Google Cloud.

Độ trễ theo cấp số nhân (Python) - Hiểu giới hạn tần suất và cách xử lý lỗi trong API Kencang.in
Độ trễ theo cấp số nhân (Python)

Mã lỗi và ý nghĩa của nó

Mã trạng thái cần xử lý - Hiểu giới hạn tần suất và cách xử lý lỗi trong API Kencang.in
Mã trạng thái cần xử lý
  • 400 Yêu cầu không hợp lệ: nội dung không phải là JSON hợp lệ hoặc thiếu tham số bắt buộc. Kiểm tra Content-Type và cấu trúc tải trọng.
  • 401 Trái phép: Khóa API bị thiếu, không chính xác hoặc đã bị thu hồi. Đừng thử lại; sửa khóa.
  • 403 Bị cấm: các tính năng không có trong gói của bạn, ví dụ: tên miền có thương hiệu trong gói Miễn phí hoặc hết hạn ngạch liên kết hàng tháng.
  • 404 Không tìm thấy: ID liên kết không tồn tại hoặc không thuộc về tài khoản của bạn.
  • 429 Quá Nhiều Yêu Cầu: giới hạn tần suất. Đợi và lặp lại.
  • 500/502/503: gián đoạn tạm thời ở phía máy chủ. Thử lại với thời gian chờ, tối đa vài lần, sau đó ghi lại để xem xét.

Ngoài trạng thái HTTP, nội dung phản hồi luôn tải error và message. Các lỗi xác thực doanh nghiệp, chẳng hạn như "bí danh đã được sử dụng" hoặc "URL bị chặn vì độc hại", được trả về trạng thái 200 và error: 1. Vì vậy, hãy kiểm tra cả hai. Kiểm tra bảo mật URL được giải thích trong bài viết bảo mật liên kết ngắn.

Tính lũy đẳng và liên kết trùng lặp

Nếu yêu cầu POST hết thời gian trên mạng, bạn không biết liệu liên kết đã được thiết lập hay chưa. Lặp lại điều này có thể tạo ra hai liên kết. Giải pháp: sử dụng bí danh xác định (ví dụ: ID đơn hàng). Nếu bí danh đã tồn tại thì API sẽ trả về lỗi "bí danh đã được sử dụng" và ứng dụng của bạn có thể truy xuất liên kết hiện có thông qua điểm cuối tìm kiếm thay vì tạo liên kết mới.

Ghi nhật ký hữu ích

Lưu ý cho mỗi lệnh gọi: điểm cuối, trạng thái HTTP, giá trị X-RateLimit-Remainingvà message khi thất bại. Không đăng nhập khóa API. Với những nhật ký này, bạn có thể xem các mẫu, chẳng hạn như mức tăng đột biến 429 cứ sau 9 giờ sáng khi cron chạy, sau đó dàn trải lịch trình.

Khi nào nên nâng cấp gói

Nếu nhật ký cho thấy bạn thường xuyên đạt đến giới hạn mặc dù theo đợt, đó là dấu hiệu của tải thực sự chứ không phải lỗi. Gói Kinh doanh cung cấp 300 yêu cầu mỗi phút và liên kết không giới hạn. Trước những nhu cầu trên, liên hệ với chúng tôi cho gói tùy chỉnh. Mã ví dụ cơ bản cho cả ba ngôn ngữ có trong bài viết Ví dụ về mã APIvà hoàn thành tài liệu tại trang dành cho nhà phát triển.

Câu hỏi thường gặp

Giới hạn tần suất được tính cho mỗi tài khoản hay mỗi khóa?

Mỗi khóa API. Nếu bạn sử dụng nhiều tiện ích tích hợp, hãy tạo các khóa riêng biệt cho từng tiện ích tích hợp để một tiện ích tích hợp bận rộn không chiếm hết hạn ngạch của tiện ích tích hợp khác và để việc giám sát việc sử dụng dễ đọc hơn trong bảng điều khiển.

Yêu cầu bị từ chối với mã 429 có được tính vào giới hạn không?

Không. Các yêu cầu bị từ chối vì vượt quá giới hạn sẽ không làm giảm hạn ngạch số phút tiếp theo. Tuy nhiên, việc gửi các yêu cầu liên tục khi đã bị hạn chế sẽ gây lãng phí tài nguyên, vì vậy hãy tôn trọng tiêu đề Thử lại sau.

Làm cách nào để tăng giới hạn yêu cầu?

Nâng cấp lên gói Business để nhận được 300 yêu cầu mỗi phút. Đối với các nhu cầu cao hơn, chẳng hạn như tích hợp với hàng triệu liên kết, hãy liên hệ với chúng tôi để có gói tùy chỉnh với các giới hạn tùy chỉnh.

Lỗi 5xx có phải là link của tôi bị mất không?

Không. Lỗi 5xx biểu thị sự gián đoạn tạm thời trong quá trình xử lý yêu cầu chứ không phải mất dữ liệu. Thử lại với thời gian chờ; Nếu tình trạng mất điện tiếp tục kéo dài hơn vài phút, hãy kiểm tra trang trạng thái hoặc liên hệ với chúng tôi.

Tim Kencang.in

Ditulis oleh tim produk dan marketing Kencang.in, pemendek link, QR code dinamis, dan bio page buatan Indonesia yang dioperasikan oleh PT Kode Digital Solusindo. Kami menulis berdasarkan pengalaman mengelola kampanye klien dan membangun fitur yang dibahas.

Tentang Kencang.in Liên hệ với chúng tôi