Antipattern: هنگامی که پخش جریانی فعال است به محموله درخواست/پاسخ دسترسی پیدا کنید

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

در Edge، رفتار پیش‌فرض این است که درخواست‌ها و پاسخ‌های HTTP قبل از پردازش توسط سیاست‌های موجود در API Proxy، در یک بافر درون حافظه ذخیره می‌شوند.

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

ضدالگو

دسترسی به بار داده درخواست/پاسخ با فعال بودن قابلیت استریمینگ باعث می‌شود Edge به حالت پیش‌فرض بافرینگ بازگردد.

شکل ۱ : دسترسی به بار داده درخواست/پاسخ با فعال بودن قابلیت استریمینگ

تصویر بالا نشان می‌دهد که ما در تلاشیم تا متغیرها را از payload درخواست استخراج کنیم و payload پاسخ JSON را با استفاده از سیاست JSONToXML به XML تبدیل کنیم. این کار استریمینگ را در Edge غیرفعال می‌کند.

تأثیر

  • پخش جریانی غیرفعال خواهد شد که می‌تواند منجر به افزایش تأخیر در پردازش داده‌ها شود.
  • افزایش استفاده از حافظه heap یا خطاهای OutOfMemory می‌تواند به دلیل استفاده از بافرهای درون حافظه‌ای، به خصوص اگر بارهای درخواست/پاسخ بزرگی داشته باشیم، در پردازنده‌های پیام مشاهده شود.

بهترین شیوه

  • هنگام فعال بودن استریمینگ، به محموله درخواست/پاسخ دسترسی پیدا نکنید.

مطالعه بیشتر