پیکربندی کردن زمان اتمام I/O در «پردازشگرهای پیام»

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

این سند نحوه پیکربندی کردن زمان اتمام I/O برای «پردازشگرهای پیام Apigee Edge» را توضیح می‌دهد.

مهلت زمانی ورودی/خروجی در «پردازشگر پیام» نشان‌دهنده مدت زمانی است که «پردازشگر پیام» منتظر می‌ماند تا یا پاسخی از سرور زیرینه دریافت کند یا سوکت برای نوشتن درخواستی به سرور زیرینه آماده شود، قبل‌از اینکه مهلت زمانی آن تمام شود.

مقدار پیش‌فرض مهلت زمانی ورودی/خروجی «پردازنده پیام» 55 seconds است. این دوره مهلت زمانی برای سرورهای زیرینه پیکربندی‌شده در پیکربندی نقطه پایان هدف و در خط‌مشی ServiceCallout میانای برنامه‌سازی کاربردی شما اعمال می‌شود.

براساس نیازهایتان، زمان اتمام I/O برای «پردازشگرهای پیام» می‌تواند از مقدار پیش‌فرض 55 seconds افزایش یا کاهش یابد. می‌توان آن را در مکان‌های زیر پیکربندی کرد:

  • در پراکسی API
    • نقطه پایانی هدف
    • خط‌مشی ServiceCallout
  • در «پردازشگر پیام»

خصوصیت‌های زیر مهلت زمانی ورودی/خروجی را در «پردازشگرهای پیام» کنترل می‌کنند:

نام دارایی مکان شرح
io.timeout.millis

پراکسی میانای برنامه‌سازی کاربردی:

  • نقطه پایانی هدف
  • خط‌مشی نوشته راهنمای سرویس

این حداکثر زمانی است که «پردازشگر پیام» کارهای زیر را انجام می‌دهد:

  • پس‌از ایجاد اتصال و ارسال درخواست به سرور پشتیبان، منتظر دریافت پاسخ از سرور پشتیبان می‌ماند یا
  • منتظر می‌ماند تا سوکت برای «پردازشگر پیام» آماده شود تا درخواست را به سرور پشتیبان ارسال کند.

اگر در این دوره زمان‌دار پاسخی از سرور پشتیبان دریافت نشود، «پردازنده پیام» زمان‌دار می‌شود.

به‌طور پیش‌فرض، این دارایی مقدار تنظیم‌شده برای دارایی HTTPTransport.io.timeout.millis را در «پردازشگر پیام» می‌گیرد. مقدار پیش‌فرض 55 seconds است.

اگر این دارایی با مقدار زمان انتظار جدید برای یک پراکسی API خاص اصلاح شود، فقط آن پراکسی API تحت تأثیر قرار می‌گیرد.

HTTPTransport.io.timeout.millis پردازشگر پیام

این حداکثر زمانی است که «پردازشگر پیام» کارهای زیر را انجام می‌دهد:

  • پس‌از ایجاد اتصال و ارسال درخواست به سرور پشتیبان، منتظر دریافت پاسخ از سرور پشتیبان می‌ماند یا
  • منتظر می‌ماند تا سوکت برای «پردازشگر پیام» آماده شود تا درخواست را به سرور پشتیبان ارسال کند.

اگر در این دوره زمان‌دار پاسخی از سرور پشتیبان دریافت نشود، «پردازنده پیام» زمان‌دار می‌شود.

این دارایی برای همه «پراکسی‌های API» که در این «پردازشگر پیام» اجرا می‌شوند استفاده می‌شود.

مقدار پیش‌فرض این دارایی 55 seconds است.

می‌توانید این دارایی را همان‌طور که در پیکربندی زمان اتمام ورودی/خروجی در پردازشگرهای پیام توضیح داده شده است اصلاح کنید، یا می‌توانید با تنظیم دارایی io.timeout.millis در سطح پراکسی میانای برنامه‌سازی کاربردی، این مقدار را ملغی کنید.

قبل‌از شروع

قبل‌از استفاده از مراحل این سند، مطمئن شوید که موضوعات زیر را درک می‌کنید:

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

مهلت زمانی ورودی/خروجی را می‌توان در مکان‌های زیر در پراکسی API پیکربندی کرد:

  • نقطه پایانی هدف
  • خط‌مشی ServiceCallout

درحال پیکربندی درنگ ورودی/خروجی در نقطه پایانی هدف میانای برنامه‌سازی کاربردی پراکسی

این بخش توضیح می‌دهد که چگونه زمان اتمام I/O را در نقطه پایان هدف میانای برنامه‌سازی کاربردی خود پیکربندی کنید. درنگ ورودی/خروجی را می‌توان ازطریق دارایی io.timeout.millis پیکربندی کرد، که مقدار درنگ ورودی/خروجی را به میلی‌ثانیه نشان می‌دهد.

  1. در «میانای کاربری Edge»، پراکسی API خاصی را که می‌خواهید مقدار جدید مهلت زمانی ورودی/خروجی را در آن پیکربندی کنید انتخاب کنید.
  2. نقطه پایانی هدف خاصی را که می‌خواهید اصلاح کنید انتخاب کنید.
  3. دارایی io.timeout.millis را با مقدار مناسب در عنصر <HTTPTargetConnection> در پیکربندی TargetEndpoint اضافه کنید.
  4. برای مثال، برای تغییر «مهلت زمانی ورودی/خروجی» به ۱۲۰ ثانیه، بلوک کد زیر را اضافه کنید:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>

    ازآنجایی‌که دارایی io.timeout.millis برحسب میلی‌ثانیه است، مقدار ۱۲۰ ثانیه برابر با 120000 است.

    نمونه‌های زیر نحوه پیکربندی زمان انتظار ورودی/خروجی را در پیکربندی نقطه پایانی هدف کارگزار API نشان می‌دهد:

    نمونه پیکربندی نقطه پایان هدف بااستفاده از نشانی وب برای سرور زیرینه

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>

    نمونه پیکربندی نقطه پایانی هدف بااستفاده از سرور هدف

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
  5. تغییرات ایجادشده در پراکسی API را ذخیره کنید.

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

این بخش توضیح می‌دهد که چگونه زمان اتمام ورودی/خروجی را در خط‌مشی ServiceCallout در پراکسی API پیکربندی کنید. مهلت زمانی ورودی/خروجی را می‌توان ازطریق عنصر <Timeout> یا دارایی io.timeout.millis پیکربندی کرد. هم عنصر <Timeout> و هم دارایی io.timeout.millis مقادیر مهلت زمانی ورودی/خروجی را به میلی‌ثانیه نشان می‌دهند.

می‌توانید مهلت زمانی I/O را در خط‌مشی ServiceCallout بااستفاده از یکی از روش‌های زیر پیکربندی کنید:

  • ‫<Timeout> عنصر.
  • ‫io.timeout.millis دارایی.

عنصر مهلت

برای پیکربندی کردن زمان اتمام I/O در خط‌مشی ServiceCallout بااستفاده از عنصر <Timeout> ، مراحل زیر را انجام دهید:

  1. در «واسط کاربر Edge»، پراکسی API خاصی را که می‌خواهید در آن مقدار مهلت زمانی I/O جدید را برای خط‌مشی ServiceCallout پیکربندی کنید انتخاب کنید.
  2. خط‌مشی «تماس با خدمات» خاصی را که می‌خواهید تغییر دهید انتخاب کنید.
  3. عنصر <Timeout> را با مقدار مناسب در پیکربندی <ServiceCallout> اضافه کنید.

    برای مثال، برای تغییر دادن زمان اتمام I/O به ۱۲۰ ثانیه، خط کد زیر را اضافه کنید:

        <Timeout>120000</Timeout>

    ازآنجایی‌که عنصر <Timeout> برحسب میلی‌ثانیه است، مقدار ۱۲۰ ثانیه برابر با 120000 است.

    مثال زیر نحوه پیکربندی کردن زمان اتمام I/O را در خط‌مشی ServiceCallout بااستفاده از عنصر <Timeout> نشان می‌دهد:

    پیکربندی خط‌مشی «برنمای تماس با سرویس» نمونه بااستفاده از نشانی وب برای سرور زیرینه

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
  4. تغییرات ایجادشده در پراکسی API را ذخیره کنید.

دارایی io.timeout.millis

برای پیکربندی کردن زمان اتمام ورودی/خروجی در خط‌مشی ServiceCallout بااستفاده از دارایی io.timeout.millis، مراحل زیر را انجام دهید:

  1. در «واسط کاربر Edge»، پراکسی API خاصی را که می‌خواهید در آن مقدار زمان انتظار ورودی/خروجی جدید را برای خط‌مشی ServiceCallout پیکربندی کنید انتخاب کنید.
  2. خط‌مشی «تماس با خدمات» خاصی را که می‌خواهید تغییر دهید انتخاب کنید.
  3. دارایی io.timeout.millis را با مقدار مناسب در عنصر <HTTPTargetConnection> در پیکربندی TargetEndpoint اضافه کنید.

    برای مثال، برای تغییر دادن زمان اتمام I/O به ۱۲۰ ثانیه، بلوک کد زیر را اضافه کنید: of code:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>

    ازآنجایی‌که دارایی io.timeout.millis برحسب میلی‌ثانیه است، مقدار ۱۲۰ ثانیه برابر با 120000 است.

    نمونه‌های زیر نحوه پیکربندی زمان انتظار ورودی/خروجی را در پیکربندی نقطه پایانی هدف کارگزار پراکسی API نشان می‌دهد:

    پیکربندی خط‌مشی «برنمای تماس با سرویس» نمونه بااستفاده از نشانی وب برای سرور زیرینه

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <HTTPTargetConnection>
          <Properties>
            <Property name="io.timeout.millis">120000</Property>
          </Properties>
          <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>

    پیکربندی خط‌مشی «خدمات تماس» نمونه بااستفاده از سرور هدف

    <ServiceCallout enabled="true" name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Response>calloutResponse</Response>
        <HTTPTargetConnection>
            <LoadBalancer>
                <Server name="target1" />
                <Server name="target2" />
            </LoadBalancer>
            <Properties>
                <Property name="io.timeout.millis">120000</Property>
            </Properties>
            <Path>/test</Path>
        </HTTPTargetConnection>
    </ServiceCallout>
  4. تغییرات ایجادشده در پراکسی API را ذخیره کنید.

پیکربندی کردن زمان اتمام I/O در «پردازشگرهای پیام»

این بخش توضیح می‌دهد که چگونه مهلت زمانی ورودی/خروجی را در «پردازشگرهای پیام» پیکربندی کنید. مهلت زمانی ورودی/خروجی را می‌توان ازطریق دارایی HTTPTransport.io.timeout.millis پیکربندی کرد، که نشان‌دهنده مقدار مهلت زمانی ورودی/خروجی برحسب میلی‌ثانیه در عنصر «پردازشگر پیام» است، بااستفاده از نشان براساس دستور زبان شرح‌داده‌شده در نحوه پیکربندی Edge.

برای پیکربندی کردن مهلت زمانی ورودی/خروجی در «پردازنده‌های پیام»، مراحل زیر را انجام دهید:

  1. در دستگاه «پردازشگر پیام»، فایل زیر را در ویرایشگر باز کنید. اگر ازقبل وجود ندارد، آن را ایجاد کنید.
    /opt/apigee/customer/application/message-processor.properties

    برای مثال، برای باز کردن فایل بااستفاده از vi، فرمان زیر را وارد کنید:

    vi /opt/apigee/customer/application/message-processor.properties
  2. خطی با قالب زیر به فایل دارایی‌ها اضافه کنید و مقدار TIME_IN_MILLISECONDS را جایگزین کنید:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS

    برای مثال، برای تغییر دادن زمان اتمام I/O در «پردازنده پیام» به ۱۲۰ ثانیه، خط زیر را اضافه کنید:

    conf_http_HTTPTransport.io.timeout.millis=120000
  3. تغییرات را ذخیره کنید.
  4. مطمئن شوید فایل دارایی متعلق به کاربر apigee باشد، همان‌طور که در زیر نشان داده شده است:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. «پردازشگر پیام» را همان‌طور که در زیر نشان داده شده است بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. اگر بیش‌از یک «پردازشگر پیام» دارید، مراحل بالا را در همه «پردازشگرهای پیام» تکرار کنید.

درحال درستی‌سنجی کردن درنگ ورودی/خروجی در «پردازشگرهای پیام»

این بخش توضیح می‌دهد که چگونه تأیید کنید که زمان اتمام I/O در «پردازنده‌های پیام» باموفقیت اصلاح شده است.

اگرچه از کد conf_http_HTTPTransport.io.timeout.millis برای تنظیم مهلت زمانی ورودی/خروجی در «پردازشگر پیام» استفاده می‌کنید، باید بررسی کنید آیا دارایی واقعی HTTPTransport.io.timeout.millis با مقدار جدید تنظیم شده است یا نه.

  1. در ماشین «پردازشگر پیام»، دارایی HTTPTransport.io.timeout.millis را در دایرکتوری /opt/apigee/edge-message-processor/conf جستجو کنید و بررسی کنید که آیا با مقدار جدید تنظیم شده است یا نه، همان‌طور که در زیر نشان داده شده است:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
  2. اگر مقدار جدید مهلت زمانی ورودی/خروجی در «پردازشگر پیام» باموفقیت تنظیم شود، فرمان بالا مقدار جدید را در فایل http.properties نشان می‌دهد.
  3. نتیجه نمونه از فرمان بالا پس‌از اینکه مهلت زمانی ورودی/خروجی را روی ۱۲۰ ثانیه پیکربندی کردید به‌صورت زیر است:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000

    در برونداد مثال بالا، توجه کنید که دارایی HTTPTransport.io.timeout.millis با مقدار جدید 120000 در http.properties تنظیم شده است. این نشان می‌دهد که زمان اتمام I/O باموفقیت روی «پردازنده پیام» روی ۱۲۰ ثانیه پیکربندی شده است.

  4. اگر هنوز مقدار قدیمی را برای دارایی HTTPTransport.io.timeout.millis می‌بینید، تأیید کنید که همه مراحل ذکرشده در پیکربندی زمان انتظار ورودی/خروجی در «پردازشگرهای پیام» را به‌درستی دنبال کرده‌اید. اگر مرحله‌ای را ازدست داده‌اید، همه مراحل را دوباره به‌درستی تکرار کنید.
  5. اگر همچنان نمی‌توانید مهلت زمانی ورودی/خروجی را تغییر دهید، لطفاً با پشتیبانی Apigee Edge تماس بگیرید.

گام بعدی چیست؟

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