→ العودة إلى القائمة

خمسون ألف مرة في الشهر؟ النداءات المفرطة لـ (آبي) تم حلها أخيراً

itadol5j

في الآونة الأخيرة، جاء لي صديق وقال انه وجد مشكلة خطيرة في الجزء الخلفي من مطور الكتاب الطائرة:

Flight Book API Call Monitor

كيف عرفت؟

الأصدقاء في "إحصائيات النداءات" خلف مطور الكتاب المطير شاهدوا عدداً كبيراً جداً

المؤشراتالقيمة
عدد المكالمات اليومية43200 مرة
كل دقيقة300 مرة
الاستهلاك الشهري التقديريحوالي 50000 مرة

لقد رحل أنا رجل آلي كيف يمكنني الاتصال كثيراً؟

الأسباب الجذرية للمشكلة

لقد بحثت في برنامج (أوبنكلو) للتمديد و وجدته في مكانين:

1. Status check trigger API call

وظيفة المسبار (فيشو) تُدعى واجهة (بوتينفو) للكتب الطائرّة في كلّ مرّة تسأل فيها عن وضع الإنسان الآلي. وتُستدعى هذه الوظيفة في السيناريوهات التالية:

  • الحصول على مفتوح على بداية
  • عند الاستفسار عن حالة النظام الخارجي
  • عندما يقطع ويب سوكيت

2. Lack of a cache mechanism

الرمز الأصلي كان "اسأل كل مكالمة" ولم يكن هناك مخبأ حتى لو طلبت حالة 10 مرات سيكون لديك 10 مكالمات

الحلول: 5 دقائق

لقد أضفت مخبأ بسيط إلى المسبار

// 缓存配置:5分钟内不重复调用 API
const CACHE_TTL_MS = 5 * 60 * 1000;
const botInfoCache = new Map();

المنطق الأساسي بسيط:

  • النداء الأول ♪ Request for fly books API ♪ Cache results
  • اتصل مرة أخرى في 5 دقائق. ○ العودة مباشرة إلى المخبأ (لم يبدأ أي طلب جديد)
  • الفشل أيضاً قد جُرح تجنب الطلبات المتكررة عند الفشل

الآثار المعدلة

Contrastقبل تعديلمعدلة
جميع الاستفسارات عن الحالةCall APIDirect Cache
فشل في المحاولة مرة أخرىغير محدودةالخوخ 5 دقائق
الاستهلاك الشهري التقديري50000 مرة300 مرة

الأمر بسيط: حد أقصى قدره اتصال واحد في 5 دقائق، 24 ساعة في اليوم = 288 مرة في الشهر، حوالي 500 3 مرة في السنة. الـ 50 ألف دولار الأصيلة لن ينفد

مشهد التطبيق

وهذا البرنامج مناسب بصفة خاصة لما يلي:

  • مستخدمون ممتدون مع القانون المفتوح العضوية
  • اصنع روبوتاً لكتاب الطيران الخاص بك واتصل بواجهة "بوتينفو" مراراً
  • The API scale is urgent and wants to optimize the number of calls

موجز

مشكلة الإفراط في توزيع الكتاب هي أساساً سببها عدم وجود آلية مخبأة والحل بسيط: دعوة واجهة مع مخبأ.

في بعض الأحيان يكون أبسط قدر من الفعالية.