بهترین روش ها برای پیکربندی وقفه ورودی/خروجی

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

درخواست‌های API ارسالی توسط برنامه‌های کلاینت، قبل از رسیدن به سرویس‌های بک‌اند، از طریق اجزای مختلف در Apigee Edge جریان می‌یابند. اکثر برنامه‌های کلاینت انتظار دارند که پاسخ این درخواست‌ها به موقع دریافت شود.

برای دستیابی به پاسخ‌های به موقع، مقادیر زمان انتظار ورودی/خروجی (I/O timeout) در هر یک از اجزایی که درخواست‌های API از طریق آنها جریان می‌یابند، تنظیم می‌شوند. اگر هر یک از اجزای موجود در جریان، زمان بیشتری نسبت به جزء قبلی طول بکشد، جزء قبلی زمان انتظار را از دست می‌دهد و با خطای ۵۰۴ Gateway Timeout پاسخ می‌دهد.

هنگام پیکربندی زمان انتظار، مقادیر باید در هر یک از اجزا با نهایت دقت پیکربندی شوند، در غیر این صورت می‌تواند منجر به خطاهای ۵۰۴ Gateway Timeout شود.

این سند بهترین شیوه‌ها را برای پیکربندی زمان‌بندی ورودی/خروجی (I/O timeout) روی اجزای مختلفی که درخواست‌های API در Apigee Edge از طریق آنها جریان می‌یابند، شرح می‌دهد.

بهترین شیوه‌ها برای پیکربندی زمان‌بندی ورودی/خروجی

هنگام پیکربندی زمان‌بندی ورودی/خروجی، بهترین شیوه‌های زیر را در نظر بگیرید:

  • مولفه اول: همیشه از بالاترین زمان انتظار روی مولفه اول در جریان درخواست API، که همان برنامه کلاینت در Apigee Edge است، استفاده کنید.
  • آخرین جزء: همیشه از کمترین زمان انتظار روی آخرین جزء در جریان درخواست API استفاده کنید، که همان سرویس Backend در Apigee Edge است.
  • بین اجزا: اطمینان حاصل کنید که حداقل ۲ تا ۳ ثانیه اختلاف در مقدار زمان انتظار پیکربندی شده در هر جزء، بین اولین جزء و آخرین جزء در جریان وجود داشته باشد.
  • روتر: همیشه بهتر است که مقدار زمان انتظار ورودی/خروجی (I/O timeout) را برای یک میزبان مجازی خاص پیکربندی (اصلاح) کنید، نه اینکه آن را روی روتر پیکربندی کنید. این کار تضمین می‌کند که مقدار زمان انتظار جدید فقط روی آن دسته از API Proxiesهایی که از میزبان مجازی خاص استفاده می‌کنند تأثیر می‌گذارد و نه روی همه API Proxiesهایی که توسط روتر سرویس داده می‌شوند.

    فقط زمانی زمان انتظار ورودی/خروجی (I/O) را روی روتر پیکربندی (اصلاح) کنید که کاملاً مطمئن باشید که مقدار جدید زمان انتظار ورودی/خروجی برای همه API Proxies های در حال اجرا روی روتر مورد نیاز یا قابل اجرا است.

  • پردازشگر پیام: همیشه بهتر است که مقدار زمان انتظار ورودی/خروجی را برای یک پروکسی API خاص پیکربندی (اصلاح) کنید، نه اینکه آن را در پردازشگر پیام پیکربندی کنید. این کار تضمین می‌کند که مقدار زمان انتظار جدید فقط بر پروکسی API خاص تأثیر می‌گذارد و نه بر همه پروکسی‌های API که توسط پردازشگر پیام ارائه می‌شوند.

    فقط زمانی زمان انتظار ورودی/خروجی (I/O timeout) را در پردازشگر پیام پیکربندی (اصلاح) کنید که کاملاً مطمئن باشید که مقدار جدید زمان انتظار ورودی/خروجی برای همه پروکسی‌های API که در پردازشگر پیام اجرا می‌شوند، مورد نیاز یا قابل اجرا است.

سناریوهای مثال

سناریوهای این بخش می‌توانند به شما در درک نحوه تنظیم صحیح مقادیر زمان‌بندی ورودی/خروجی کمک کنند.

سناریو ۱: درخواست‌ها به Apigee Edge از برنامه‌های کلاینت به طور مستقیم

این بخش بهترین شیوه‌های تنظیم مقادیر زمان انتظار در تنظیمات Apigee Edge را شرح می‌دهد، جایی که هیچ مؤلفه واسطه‌ای بین برنامه کلاینت و Apigee Edge و بین Apigee Edge و سرور backend شما وجود ندارد.

نمونه تنظیمات Apigee بدون هیچ قطعه واسطی

Flow starting at Client going to Router and then to Message Processor and then to Backend Server

اگر Apigee Edge مطابق نمودار بالا و بدون هیچ قطعه واسطه‌ای راه‌اندازی شده باشد، از بهترین شیوه‌های زیر استفاده کنید:

  1. برنامه‌ی کلاینت اولین جزء در جریان است. بالاترین مقدار timeout باید روی کلاینت تنظیم شود.
  2. سرور backend آخرین جزء در جریان است. کمترین مقدار timeout باید روی سرور backend تنظیم شود.
  3. مقادیر زمان انتظار (timeout) را روی هر یک از اجزا به ترتیب زیر پیکربندی کنید:

    Configure timeout on client, then Router, then Message Processor, then Backend Server

    مثال زیر مقادیر timeout تنظیم شده روی اجزای مختلف را طبق دستورالعمل‌های بالا برای جلوگیری از هرگونه مشکل نشان می‌دهد:

    Configure timeout on client at 60 seconds, then Router at 57 seconds, then Message Processor at 55 seconds, then Backend Server at 52 seconds

سناریو ۲: درخواست‌ها به Apigee Edge از برنامه‌های کلاینت از طریق اجزای واسطه

این بخش بهترین شیوه‌های تنظیم مقادیر زمان انتظار در تنظیمات Apigee Edge را شرح می‌دهد، جایی که یک یا چند مؤلفه واسطه بین برنامه کلاینت و Apigee Edge و همچنین بین Apigee Edge و سرور backend شما وجود دارد.

اجزای میانی می‌توانند یک متعادل‌کننده بار، شبکه تحویل محتوا ( CDN )، NGINX و غیره باشند.

نمونه تنظیمات Apigee با یک جزء واسطه بین کلاینت و Apigee Edge و بین Apigee Edge و سرور backend

Flow starting at Client going to Intermediate Component 1 and then to Router and then to Message Processor and then to Intermediate Component 2 and then to Backend Server

اگر Apigee Edge مطابق نمودار بالا و با یک یا چند جزء میانی راه‌اندازی شده است، از بهترین شیوه‌های زیر استفاده کنید:

  1. برنامه‌ی کلاینت اولین جزء در جریان است. بالاترین مقدار timeout باید روی کلاینت تنظیم شود.
  2. سرور backend آخرین جزء در جریان است. کمترین مقدار timeout باید روی سرور backend تنظیم شود.
  3. مقادیر زمان انتظار را روی هر یک از اجزا، از جمله اجزای میانی، به ترتیب زیر پیکربندی کنید:

    Configure timeout on client, then Intermediate Component 1, then Router, then Message Processor, then Intermediate Component 2, then Backend Server

    مثال زیر مقادیر timeout تنظیم شده روی اجزای مختلف را طبق دستورالعمل‌های بالا برای جلوگیری از هرگونه مشکل نشان می‌دهد:

    Configure timeout on client at 63 seconds, then Intermediate Component 1 at 60 seconds, then Router at 57 seconds, then Message Processor st 55 seconds, then Intermediate Component 2 at 52 seconds, then Backend Server at 59 seconds