TGViewer
Tech Stuff Tech Stuff @techstuff100 · 1.21K subscribers
Post #336 1.45K
استراتژی‌های Retry در سیستم‌های توزیع‌شده

وقتی یه درخواست fail میشه، معمولا می‌تونیم Retry کنیم.
چند تا از استراتژی‌های رایج:

یک. Immediate Retry: بلافاصله دوباره درخواست می‌فرستیم. ساده و سریعه؛ ولی اگه مشکل همچنان وجود داشته باشه، می‌تونه باعث درخواست‌های پشت‌سرهم و فشار بیشتر بشه.

دو. Fixed Interval: بعد از هر خطا مدت زمان ثابتی صبر می‌کنیم؛ مثلا هر ۵ ثانیه یک‌بار. ساده‌ست؛ ولی ممکنه فاصله انتخاب‌شده بیش از حد کوتاه یا طولانی باشه.

سه. Incremental Interval: فاصله Retryها کم کم بیشتر میشه؛ مثلا ۱، ۲، ۳، ۴ ثانیه.

چهار. Exponential Backoff: فاصله بین Retryها به‌صورت نمایی افزایش پیدا می‌کنه؛ مثلا ۱، ۲، ۴، ۸ ثانیه. برای خطاهایی که احتمال میدیم بعد از مدتی برطرف بشن معمولا انتخاب مناسبیه. بهتره تعداد Retry یا حداکثر زمان انتظار هم محدود بشه.

پنج. Jitter: یک مقدار تصادفی به زمان انتظار اضافه می‌کنیم تا چندین کلاینت هم‌زمان Retry نکنن.

شش. Circuit Breaker: وقتی تعداد خطاها از حد مشخصی بیشتر بشه، موقتا Retry و درخواست‌های جدید رو متوقف می‌کنیم تا سرویس مقصد فرصت ریکاوری داشته باشه.

هفت. Adaptive Retry: استراتژی Retry رو بر اساس شرایط فعلی سیستم، مثل Load، Failure Rate و Response Time تغییر میدیم.

هشت. Cancel: اگر خطا دائمی باشه یا Retry کردن احتمال موفقیت نداشته باشه، به‌جای ادامه دادن، درخواست رو کنسل می‌کنیم.

در عمل معمولا یک ترکیب از این روش‌ها استفاده میشه؛ مثلا Exponential Backoff + Jitter + محدودیت تعداد Retry. همچنین برای درخواست‌هایی مثل پرداخت باید Idempotency رو هم در نظر گرفت تا Retry باعث اجرای چندباره یه عملیات نشه.

#system_design

@techstuff100
  • 👍 6
  • ❤ 4
  • 👏 2
More from @techstuff100
  1. Oct 9, 2026فاصله Levenshtein حداقل تعداد عملیات‌های ممکن (insertion، deletion و substitution) برای تب…
  2. Oct 6, 2026خروجی کد بالا (1) چیه؟ شاید اینطور فکر کنیم که وقتی به return "try" می‌رسیم، اجرای تابع مت…
  3. Oct 2, 2026قانون پارکینسون میگه کار اونقدر کش پیدا می‌کنه تا زمانی که برای تکمیلش داریم رو پر کنه. پر…
  4. Oct 1, 2026با بزرگ شدن LF باید slotهای بیشتری به hash tableمون اضافه کنیم که بهش میگن resizing. منطقی…
  5. Oct 1, 2026پرفورمنس hash table پرفورمنس hash tableها بطور متوسط (average case) پیچیدگی زمانی O(1) دار…
  6. Sep 29, 2026چطور ریموت کار کنیم ریموت کار کردن فقط این نیست که لپ‌تاپمون رو برداریم و از خونه کار کنیم…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →