Development 1 دقيقة للقراءة 354 مشاهدات

استراتيجيات تحديد معدل API لتطبيقات الإنتاج في 2026

نفذ تحديد معدل فعال لحماية APIs الخاصة بك من إساءة الاستخدام مع الحفاظ على تجربة مستخدم جيدة.

استراتيجيات تحديد معدل API لتطبيقات الإنتاج في 2026

تحديد المعدّل (Rate Limiting) أساسي لحماية الواجهات البرمجية من إساءة الاستخدام وضمان الاستخدام العادل والحفاظ على استقرار النظام. في 2026، أصبحت استراتيجيات تحديد المعدّل المتطورة شرطاً أساسياً لواجهات الإنتاج.

خوارزميات تحديد المعدّل

دلو الرموز (Token Bucket)

يسمح بالدفعات مع الحفاظ على متوسط المعدّل. تُضاف الرموز بمعدّل ثابت وتُستهلَك لكل طلب.

النافذة المنزلقة (Sliding Window)

أنعم من النوافذ الثابتة، إذ يحسب الطلبات في فترة زمنية متدحرجة.

الدلو المُسرّب (Leaky Bucket)

يعالج الطلبات بمعدّل ثابت، مع وضع الطلبات الزائدة في طابور.

التطبيق باستخدام Redis

// Sliding window rate limiter
async function checkRateLimit(userId, limit, windowMs) {
  const key = `ratelimit:${userId}`
  const now = Date.now()
  const windowStart = now - windowMs

  await redis.zremrangebyscore(key, 0, windowStart)
  const count = await redis.zcard(key)

  if (count >= limit) {
    return { allowed: false, retryAfter: windowMs / 1000 }
  }

  await redis.zadd(key, now, `${now}`)
  await redis.expire(key, Math.ceil(windowMs / 1000))

  return { allowed: true, remaining: limit - count - 1 }
}

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

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1640995200
Retry-After: 60

استراتيجيات متقدمة

  • حدود متدرّجة: حدود مختلفة لكل خطة
  • حدود نقاط النهاية: حدود أصرم على العمليات المكلفة
  • حدود تكيّفية: تتعدّل بناءً على حِمل النظام
  • سمعة المستخدم: حدود أعلى للمستخدمين الموثوقين

المعالجة من جانب العميل

طبّق التراجع التدريجي الأُسّي واحترم رؤوس Retry-After لتجنّب إغراق نقاط النهاية محدودة المعدّل.

مشاركة هذه المقالة:
ES
كتبه

Edrees Salih

مهندس برمجيات متكامل يتمتع بخبرة 9 سنوات. شغوف ببناء حلول قابلة للتطوير ومشاركة المعرفة مع مجتمع المطورين.

عرض الملف الشخصي

التعليقات (0)

اترك تعليقًا

لن يتم نشر بريدك الإلكتروني.

لا توجد تعليقات بعد. كن أول من يشارك أفكاره!

مقالات ذات صلة

مقالات ذات صلة

هل تحتاج مساعدة في مشروعك؟

احجز استشارة مجانية لمدة 30 دقيقة لمناقشة تحدياتك التقنية واستكشاف الحلول معًا.