SQS بیست ساله شد؛ صف پیامی که هنوز همون کار روز اول رو میکنه
خلاصهٔ کاملتر
AWS تو این پست بیستسالگی Amazon SQS رو مرور کرده. این سرویس سیزدهم جولای ۲۰۰۶ همراه با EC2 و S3 بهعنوان یکی از سه سرویس اول AWS عرضه شد. منطقش هم از تجربهٔ خود آمازون میاومد: تو سیستمهای توزیعشده اگه یه سرویس مستقیم سرویس دیگه رو صدا بزنه و اون کند یا از دسترس خارج باشه، خرابی مثل دومینو کل سیستم رو میگیره.
صف پیام این مشکل رو با ارتباط ناهمزمان حل میکنه: تولیدکننده پیام رو تو صف میندازه و رد میشه، مصرفکننده هروقت آماده بود برش میداره. به گفتهٔ نویسنده، بعد از بیست سال هنوز همین کارکرد — جدا کردن تولیدکننده از مصرفکننده — دلیل اصلی استفادهٔ مشتریهاست؛ چیزی که عوض شده مقیاس و کنترلهای عملیاتی دور و برشه.
بزرگترین جهش تو حوزهٔ توان عملیاتی صفهای FIFO بوده. حالت high throughput در ۲۰۲۱ با ۳ هزار تراکنش در ثانیه به ازای هر عملیات API شروع شد (ده برابر سقف قبلی) و بعد پلهپله رفت بالا: ۶ هزار در ۲۰۲۲، ۹ هزار و بعد ۱۸ هزار در ۲۰۲۳، و تا نوامبر ۲۰۲۳ به ۷۰ هزار تراکنش در ثانیه در برخی ریجنها رسید.
روی امنیت، رمزنگاری سمت سرور با کلیدهای مدیریتشدهٔ خود SQS در ۲۰۲۱ اضافه شد تا کسی درگیر مدیریت کلید نشه، و از اکتبر ۲۰۲۲ برای همهٔ صفهای تازهساختهشده پیشفرض شد. کنترل دسترسی مبتنی بر ویژگی (ABAC) هم در ۲۰۲۲ اومد که اجازه میده مجوزها بر اساس تگ صف تعریف بشن، نه پالیسیهای ثابتی که با رشد منابع باید دستی نگهداری بشن.
بازیابی پیامهای مصرفنشده از dead-letter queue هم مرحلهبهمرحله کامل شد: اول از کنسول در ۲۰۲۱، بعد در ۲۰۲۳ از طریق SDK و CLI با APIهایی مثل StartMessageMoveTask و CancelMessageMoveTask، و در نوامبر همون سال پشتیبانی از صفهای FIFO. سقف پیامهای در حال پردازش FIFO هم در ۲۰۲۴ از ۲۰ هزار به ۱۲۰ هزار رسید.
چند بهبود کاربردی دیگه هم بوده: پشتیبانی از پروتکل JSON در SDK که تأخیر پردازش یه پیام ۵ کیلوبایتی رو تا ۲۳٪ کم کرد و مصرف CPU و حافظهٔ سمت کلاینت رو پایین آورد؛ اتصال مستقیم صف به EventBridge Pipes از کنسول؛ و اومدن Extended Client Library به پایتون در ۲۰۲۴ که با ذخیرهٔ محتوا در S3 و رد کردن ارجاعش از صف، پیام تا ۲ گیگابایت رو ممکن میکنه.
دو خبر ۲۰۲۵ هم ارزش توجه دارن. fair queues مشکل همسایهٔ پرسروصدا رو تو صفهای چندمستأجری هدف گرفته: با فرستادن یه message group ID همراه پیام، یه مستأجر پرترافیک نمیتونه تحویل پیام بقیه رو عقب بندازه و هیچ تغییری هم سمت مصرفکننده لازم نیست. حداکثر حجم پیام هم برای هر دو نوع صف از ۲۵۶ کیلوبایت به ۱ مگابایت رسید، پس برای پیامهای بزرگتر لزوماً نباید سراغ ذخیرهسازی بیرونی رفت.
جمعبندی نویسنده اینه که با وجود همهٔ اینها، سناریوی اصلی همون قبلیه: جدا کردن سرویسها، جذب موجهای ناگهانی ترافیک و ساخت سیستمی که با خرابی یه جزء از پا درنیاد. تازهترین کاربردش هم بارهای کاری هوش مصنوعیه — استفاده از صف برای بافر کردن درخواستها به مدلهای زبانی بزرگ، مدیریت توان استنتاج و هماهنگی بین ایجنتهایی که هرکدوم مثل یه سرویس مستقل کار میکنن.
نکات کلیدی:
- SQS در جولای ۲۰۰۶ کنار EC2 و S3 یکی از سه سرویس اول AWS بود
- توان صفهای FIFO از ۳ هزار به ۷۰ هزار تراکنش در ثانیه در برخی ریجنها رسید
- رمزنگاری سمت سرور از اکتبر ۲۰۲۲ برای صفهای جدید پیشفرضه
- سقف پیام از ۲۵۶ کیلوبایت به ۱ مگابایت رسید و سقف پیامهای در حال پردازش FIFO به ۱۲۰ هزار
- fair queues با message group ID جلوی همسایهٔ پرسروصدا رو در صفهای چندمستأجری میگیره
- کاربرد تازه: بافر کردن درخواستهای LLM و هماهنگی بین ایجنتهای هوش مصنوعی




