بیاید بیکار نباشیم، هر از گاهی یک سوال چالشی میفرستم که یکم ذهنمون درگیر بشه و یاد بگیریم.
از آسون شروع کنیم😁
فرض کنید یک API داریم که دادههاش رو از Redis میخونه.
داده مورد نظر هر ۱۰ دقیقه یک بار Expire میشه و بعد از Expire شدن، اولین درخواست میره دیتابیس رو میخونه و مجدد مقدار رو داخل Redis ذخیره میکنه.
حالا این API حدود ۱۰۰۰ درخواست در ثانیه داره.
سوال اینجاست:
اگر دقیقاً در لحظهای که Cache Expire شده، ۱۰۰۰ درخواست همزمان به API برسه، چه اتفاقی میفته؟
چه مشکلاتی ممکنه برای Redis، Application و Database ایجاد بشه؟
ایا ۱۰۰۰ درخواست باید به دیتابیس کوئری بزنن؟
شما برای جلوگیری از این مشکل چه راهکارهایی پیشنهاد میدید؟
در پاسخ فقط اسم بردن از راهکارها کافی نیست؛ در مورد نحوه پیادهسازی، مزایا، معایب و Trade-off هر راهکار هم توضیح بدید.
Post #552
280
- 🔥 8
- 👍 1
- 🤣 1