یه API که برای ۱۰۰ کاربر خوب کار میکنه، لزوماً برای ۱۰ هزار کاربر آماده نیست.
فرض کن یه API داری که اطلاعات یک محصول رو برمیگردونه.
در حالت عادی، همهچیز خوبه. اما با افزایش تعداد کاربران، چند مشکل ممکنه ظاهر بشه:
* دیتابیس زیر فشار تعداد درخواستها قرار میگیره.
* چند درخواست همزمان، کارهای تکراری انجام میدن.
* زمان پاسخگویی بالا میره.
* مصرف منابع سرور افزایش پیدا میکنه.
راهحل چیه؟ لزوماً اضافه کردن سرور یا استفاده از Redis نیست.
اول باید بفهمیم گلوگاه (Bottleneck) دقیقاً کجاست.
برای مثال:
۱. اگر یک Query سنگین داریم، شاید بهینهسازی Query یا اضافه کردن Index مؤثرتر باشه.
۲. اگر اطلاعات یکسان بارها درخواست میشن، Caching میتونه تعداد مراجعه به دیتابیس رو کاهش بده.
۳. اگر یک سرور به محدودیت منابع رسیده، شاید به Horizontal Scaling نیاز داشته باشیم.
۴. اگر درخواستها کارهای سنگین و زمانبر انجام میدن، انتقال بخشی از پردازش به یک Queue میتونه کمککننده باشه.
نکته مهم اینه که هرکدوم از این راهحلها هزینه و پیچیدگی خودشون رو دارن.
گاهی بهترین تصمیم معماری، اضافه نکردن یک تکنولوژی جدیده.
@DevTwitter | <Abolfazl Momenifar/>
Post #13547
2.32K
- 👍 21
- ❤ 2
- 🍌 2