حدود المعدَّل

تجمع واجهة برمجة تطبيقات "إعلانات Google" طلبات تحديد السعر بطلبات البحث في الثانية (QPS) لكل رقم تعريفي للعميل والرمز المميز للمطوِّر، ما يعني أنه يتم فرض قياس حصة القراءة المجانية بشكل مستقل على كلٍّ من الأرقام التعريفية للعملاء والرموز المميزة للمطوِّرين. تستخدم واجهة برمجة تطبيقات "إعلانات Google" خوارزمية مجموعة بيانات الرمز المميّز لقياس الطلبات وتحديد حد أقصى ملائم لعدد الطلبات في الثانية (QPS)، وبالتالي سيختلف الحد المسموح به اعتمادًا على إجمالي التحميل على الخادم في أي وقت.

والغرض من فرض حدود للمعدل هو منع مستخدم واحد من تعطيل الخدمة للمستخدمين الآخرين عن طريق (إما عن قصد أو عن غير قصد) إغراق خوادم Google Ads API التي بها عدد كبير من الطلبات.

سيتم رفض الطلبات التي تخالف الحدود القصوى للأسعار مع عرض الخطأ التالي: RESOURCE_TEMPORARILY_EXHAUSTED.

ويمكنك التحكّم في تطبيقك والحدّ من حدود معدّل الزحف من خلال تعزيز عدد الطلبات بشكل فعّال وتقليل عدد طلبات البحث في الثانية من جهة العميل.

تتوفّر عدة طرق لتقليل احتمالات تجاوز الحدّ الأقصى المسموح به. يمكن أن يساعدك التعرف على مفاهيم أنماط تكامل المؤسسات (EIP) مثل المراسلة وإعادة التسليم والتقييد في إنشاء تطبيق عميل أكثر فعاليةً.

يمكن اتّباع الممارسات التالية الموصى بها حسب التعقيد، مع وضع استراتيجيات أبسط في الأعلى، وبُنى أكثر قوة وتطورًا بعد:

الحد من المهام المتزامنة

أحد الأسباب الرئيسية لتجاوز حدود المعدّل هو أنّ تطبيق العميل ينتج عنه عددًا مفرطًا من المهام المتوازية. على الرغم من أنّنا لا نفرض قيودًا على عدد الطلبات المتوازية التي يمكن أن يقدّمها تطبيق العميل، يمكن أن يتجاوز هذا الإجراء بسهولة الحدّ الأقصى المسموح به لعدد الطلبات لكل ثانية على مستوى الرمز المميّز للمطوِّر.

يوصى بوضع حد أقصى معقول للعدد الإجمالي للمهام المتزامنة التي ستُجري الطلبات (عبر جميع العمليات والأجهزة)، والضبط للأعلى لتحسين سرعة معالجة البيانات دون تجاوز الحد الأقصى لمعدّل البيانات.

بالإضافة إلى ذلك، يمكنك التحكم في عدد الطلبات في الثانية (QPS) من جهة العميل (راجِع محددات التقييد ومعدّل البحث).

طلبات التجميع

يمكنك تجميع عمليات متعددة في طلب واحد. ينطبق ذلك بشكل أكبر على مكالمات MutateFoo. على سبيل المثال، إذا كنت تعدّل الحالة لعدّة مثيلات من AdGroupAd، بدلاً من طلب الرقم MutateAdGroupAds مرّة واحدة لكلّ AdGroupAd، يمكنك طلب الرقم MutateAdGroupAds مرة واحدة وتمرير عدّة operations. ارجع إلى إرشادات العمليات المجمّعة للحصول على بعض الأمثلة الإضافية.

على الرغم من أنّ تجميع الطلبات يقلل من العدد الإجمالي للطلبات ويخفّف من حد معدّل الطلبات لكل دقيقة، قد يؤدي ذلك إلى تشغيل حدّ معدّل العمليات لكل دقيقة إذا نفذت عددًا كبيرًا من العمليات في حساب واحد.

حدود التقييد ومعدّل السرعة

بالإضافة إلى الحد من إجمالي عدد سلاسل الرسائل في تطبيق العميل، يمكنك أيضًا تنفيذ مُحدِّدات المعدّل من جهة العميل. يمكن أن يضمن ذلك خضوع جميع السلاسل عبر عملياتك و/أو مجموعاتك لحد محدد لعدد الطلبات في الثانية (QPS) من جانب العميل.

يمكنك الاطّلاع على محدد معدل Guava أو تنفيذ الخوارزمية المستندة إلى مجموعة بيانات الرمز المميّز الخاصة بك لبيئة تجميع. على سبيل المثال، يمكنك إنشاء رموز مميزة وتخزينها في مساحة تخزين معاملات مشتركة مثل قاعدة بيانات، وسيتعين على كل عميل الحصول على رمز مميز واستخدامه قبل معالجة الطلب. إذا تم استهلاك الرموز المميزة، فسيتعين على العميل الانتظار حتى يتم إنشاء الدفعة التالية من الرموز المميزة.

الإضافة إلى قائمة المحتوى التالي

قائمة انتظار الرسائل هي الحل لتوزيع حِمل التشغيل، مع التحكّم أيضًا في أسعار الطلبات والمستهلكين. هناك عدد من خيارات قائمة انتظار الرسائل المتاحة - بعضها مفتوح المصدر والبعض الآخر مملوك والعديد منها يمكن أن يعمل بلغات مختلفة.

عند استخدام قوائم انتظار الرسائل، يمكن أن يكون لديك العديد من المنتجين الذين يدفعون الرسائل إلى قائمة الانتظار والعديد من المستهلكين يعالجون هذه الرسائل. يمكن تنفيذ القيود من جانب المستهلك من خلال الحد من عدد المستهلكين المتزامنين، أو وضع محددات المعدل أو التقييدات إما للمنتجين أو المستهلكين.

على سبيل المثال، إذا واجه مستهلك رسالة خطأ متعلقًا بالحدّ الأقصى للأسعار، يمكن للمستهلك إعادة الطلب إلى قائمة الانتظار لتتم إعادة المحاولة. وفي الوقت نفسه، يمكن لهذا المستهلك أيضًا إبلاغ جميع المستهلكين الآخرين بإيقاف المعالجة مؤقتًا لعدد من الثواني للتعافي من الخطأ.