برنامه نویسی

کشف پیچیدگی های سهمیه آمازون SQS: آنچه باید بدانید

Summarize this content to 400 words in Persian Lang
وقتی صحبت از آمازون SQS (سرویس صف ساده) می شود، درک محدودیت های سهمیه می تواند کمی مشکل باشد، به خصوص هنگام استفاده از FIFO (اول در اول بیرون). در این پست، ما عمیقاً به تفاوت‌های بین این صف‌ها می‌پردازیم، به‌ویژه با تمرکز بر جنبه اغلب نادیده گرفته شده محدودیت‌های توان.

خروجی های پیام SQS

صف استاندارد

تماس های تقریبا نامحدود / ثانیه / API

FIFO با توان عملیاتی بالا

300 تماس/ثانیه/API/شناسه گروه پیام
700000 API/sec/queue # به منطقه بستگی دارد

FIFO بدون توان عملیاتی بالا

انواع صف SQS: استاندارد در مقابل FIFO

آمازون SQS دو نوع صف مجزا را ارائه می دهد:

صف استاندارد

این نوع صف، توان و ضمانت تقریباً نامحدودی را ارائه می دهد حداقل یک بار تحویل این بدان معنی است که هر پیام حداقل یک بار تضمین می شود و در برخی موارد ممکن است پیام ها خارج از نظم تحویل داده شوند. با توجه به این، اجرای آن ضروری است ناتوان کارگران در برنامه شما

صف FIFO

طراحی شده تا تضمین کند که پیام ها تحویل داده می شوند دقیقا یک بار و به ترتیب دقیقی که ارسال می شوند. در حالی که این برای بسیاری از برنامه‌ها حیاتی است، اما با معاوضه‌های خاصی همراه است، به ویژه از نظر توان عملیاتی.

توان عملیاتی بالا FIFO (توصیه می شود): در این حالت، SQS یک پارتیشن اختصاصی را به هر ID گروه پیام در صف اختصاص می دهد. این پارتیشن بندی امکان پردازش موازی پیام ها را فراهم می کند. هر پارتیشن می‌تواند تا 300 پیام را در هر ثانیه به ازای هر اقدام API در هر ID گروه پیام مدیریت کند. با افزایش تعداد گروه‌های پیام، می‌توانید توان عملیاتی صف را برای پاسخگویی به تقاضاهای بالاتر مقیاس کنید. برای جزئیات بیشتر، لطفاً به اسناد رسمی، به ویژه بخش «پارتیشن‌ها و توزیع داده‌ها برای توان عملیاتی بالا برای صف‌های SQS FIFO» در «فعال کردن توان عملیاتی بالا برای صف‌های FIFO در Amazon SQS» مراجعه کنید.

خروجی صف بسته به مناطق متفاوت است، مانند 900000 در ویرجینیای شمالی و 91000 در توکیو.

بدون توان عملیاتی بالا FIFO: این حالت محدودتر است، با حداکثر توان عملیاتی 300 پیام در ثانیه در هر عمل API در هر صف. این محدودیت می تواند یک گلوگاه در برنامه هایی باشد که به پردازش پیام با حجم بالا نیاز دارند.

Non-High-Throughput FIFO از خروجی شناسه گروه پیام پشتیبانی نمی کند

ممکن است به نظر برسد که می توانید بین توان اندازه گیری شده یکی را انتخاب کنید در هر صف یا شناسه گروه پیام هنگام استفاده از صف‌های FIFO، اما در واقعیت، حالت غیر پرتوان به حالت اول محدود می‌شود، در حالی که حالت پرتوان به طور انحصاری از حالت دوم استفاده می‌کند.

در واقع، اگر بخواهید یک صف FIFO در حالت non-throughput بالا با خروجی ID گروه در هر پیام ایجاد کنید، با خطاهایی مشابه موارد زیر مواجه خواهید شد:

InvalidAttributeValue: مقدار نامعتبر برای پارامتر FifoThroughputLimit. دلیل: برای تنظیم FifoThroughputLimit روی perMessageGroupId، DeduplicationScope باید messageGroup باشد.

مراجع

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDveloperGuide/quotas-messages.html
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDveloperGuide/enable-high-throughput-fifo.html
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDveloperGuide/high-throughput-fifo.html

وقتی صحبت از آمازون SQS (سرویس صف ساده) می شود، درک محدودیت های سهمیه می تواند کمی مشکل باشد، به خصوص هنگام استفاده از FIFO (اول در اول بیرون). در این پست، ما عمیقاً به تفاوت‌های بین این صف‌ها می‌پردازیم، به‌ویژه با تمرکز بر جنبه اغلب نادیده گرفته شده محدودیت‌های توان.

خروجی های پیام SQS

  • صف استاندارد
    • تماس های تقریبا نامحدود / ثانیه / API
  • FIFO با توان عملیاتی بالا
    • 300 تماس/ثانیه/API/شناسه گروه پیام
    • 700000 API/sec/queue # به منطقه بستگی دارد
  • FIFO بدون توان عملیاتی بالا

انواع صف SQS: استاندارد در مقابل FIFO

آمازون SQS دو نوع صف مجزا را ارائه می دهد:

صف استاندارد

این نوع صف، توان و ضمانت تقریباً نامحدودی را ارائه می دهد حداقل یک بار تحویل این بدان معنی است که هر پیام حداقل یک بار تضمین می شود و در برخی موارد ممکن است پیام ها خارج از نظم تحویل داده شوند. با توجه به این، اجرای آن ضروری است ناتوان کارگران در برنامه شما

صف FIFO

طراحی شده تا تضمین کند که پیام ها تحویل داده می شوند دقیقا یک بار و به ترتیب دقیقی که ارسال می شوند. در حالی که این برای بسیاری از برنامه‌ها حیاتی است، اما با معاوضه‌های خاصی همراه است، به ویژه از نظر توان عملیاتی.

توان عملیاتی بالا FIFO (توصیه می شود): در این حالت، SQS یک پارتیشن اختصاصی را به هر ID گروه پیام در صف اختصاص می دهد. این پارتیشن بندی امکان پردازش موازی پیام ها را فراهم می کند. هر پارتیشن می‌تواند تا 300 پیام را در هر ثانیه به ازای هر اقدام API در هر ID گروه پیام مدیریت کند. با افزایش تعداد گروه‌های پیام، می‌توانید توان عملیاتی صف را برای پاسخگویی به تقاضاهای بالاتر مقیاس کنید. برای جزئیات بیشتر، لطفاً به اسناد رسمی، به ویژه بخش «پارتیشن‌ها و توزیع داده‌ها برای توان عملیاتی بالا برای صف‌های SQS FIFO» در «فعال کردن توان عملیاتی بالا برای صف‌های FIFO در Amazon SQS» مراجعه کنید.

خروجی صف بسته به مناطق متفاوت است، مانند 900000 در ویرجینیای شمالی و 91000 در توکیو.

بدون توان عملیاتی بالا FIFO: این حالت محدودتر است، با حداکثر توان عملیاتی 300 پیام در ثانیه در هر عمل API در هر صف. این محدودیت می تواند یک گلوگاه در برنامه هایی باشد که به پردازش پیام با حجم بالا نیاز دارند.

Non-High-Throughput FIFO از خروجی شناسه گروه پیام پشتیبانی نمی کند

ممکن است به نظر برسد که می توانید بین توان اندازه گیری شده یکی را انتخاب کنید در هر صف یا شناسه گروه پیام هنگام استفاده از صف‌های FIFO، اما در واقعیت، حالت غیر پرتوان به حالت اول محدود می‌شود، در حالی که حالت پرتوان به طور انحصاری از حالت دوم استفاده می‌کند.

ایجاد صف fifo از کنسول

در واقع، اگر بخواهید یک صف FIFO در حالت non-throughput بالا با خروجی ID گروه در هر پیام ایجاد کنید، با خطاهایی مشابه موارد زیر مواجه خواهید شد:

InvalidAttributeValue: مقدار نامعتبر برای پارامتر FifoThroughputLimit. دلیل: برای تنظیم FifoThroughputLimit روی perMessageGroupId، DeduplicationScope باید messageGroup باشد.

مراجع

  1. https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDveloperGuide/quotas-messages.html
  2. https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDveloperGuide/enable-high-throughput-fifo.html
  3. https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDveloperGuide/high-throughput-fifo.html

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا