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

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

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

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

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

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

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

ویژگی های زیر زمان I/O را در پردازشگرهای پیام کنترل می کنند:

نام ملک مکان توضیحات
io.timeout.millis

پروکسی API:

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

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

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

اگر در این بازه زمانی هیچ پاسخی از سرور باطن دریافت نشد، زمان پردازش پیام به پایان می رسد.

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

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

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

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

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

اگر در این بازه زمانی هیچ پاسخی از سرور باطن دریافت نشد، زمان پردازش پیام به پایان می رسد.

این ویژگی برای تمام پروکسی های API در حال اجرا در این پردازشگر پیام استفاده می شود.

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

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

قبل از شروع

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

پیکربندی وقفه I/O در پراکسی API

زمان I/O را می توان در مکان های پراکسی API زیر پیکربندی کرد:

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

پیکربندی وقفه ورودی/خروجی در نقطه پایانی هدف پروکسی API

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

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

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

    از آنجایی که ویژگی io.timeout.millis بر حسب میلی ثانیه است، مقدار 120 ثانیه 120000 است.

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

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

    <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 خود را ذخیره کنید.

پیکربندی مهلت I/O در خط مشی ServiceCallout پروکسی API

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

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

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

عنصر مهلت زمانی

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

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

    به عنوان مثال، برای تغییر زمان I/O به 120 ثانیه، خط کد زیر را اضافه کنید:

        <Timeout>120000</Timeout>
    

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

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

    مثال پیکربندی خط مشی ServiceCallout با استفاده از URL برای سرور پشتیبان

    <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

برای پیکربندی زمان I/O در خط مشی ServiceCallout با استفاده از ویژگی io.timeout.millis ، موارد زیر را انجام دهید:

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

    به عنوان مثال، برای تغییر زمان I/O به 120 ثانیه، بلوک کد زیر را اضافه کنید:

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

    از آنجایی که ویژگی io.timeout.millis بر حسب میلی ثانیه است، مقدار 120 ثانیه 120000 است.

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

    مثال پیکربندی خط مشی ServiceCallout با استفاده از URL برای سرور پشتیبان

    <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 با استفاده از سرور هدف

    <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 پیکربندی کرد، که مقدار وقفه ورودی/خروجی را بر حسب میلی ثانیه در مؤلفه Message Processor، با استفاده از توکن مطابق نحو توضیح داده شده در نحوه پیکربندی Edge نشان می دهد.

برای پیکربندی وقفه I/O در پردازشگرهای پیام، موارد زیر را انجام دهید:

  1. در دستگاه Message Processor، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
    /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 در پردازشگر پیام به 120 ثانیه، خط زیر را اضافه کنید:

    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 در پردازشگرهای پیام

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

حتی اگر از رمز conf_http_HTTPTransport.io.timeout.millis برای تنظیم زمان I/O در پردازشگر پیام استفاده می کنید، باید بررسی کنید که آیا ویژگی واقعی HTTPTransport.io.timeout.millis با مقدار جدید تنظیم شده است یا خیر.

  1. در دستگاه Message Processor، ویژگی HTTPTransport.io.timeout.millis را در پوشه /opt/apigee/edge-message-processor/conf جستجو کنید و بررسی کنید که آیا مطابق شکل زیر با مقدار جدید تنظیم شده است یا خیر:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. اگر مقدار جدید I/O timeout با موفقیت روی Message Processor تنظیم شود، دستور بالا مقدار جدید را در فایل http.properties نشان می دهد.
  3. نتیجه نمونه دستور بالا پس از تنظیم زمان I/O روی 120 ثانیه به شرح زیر است:

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

    در خروجی مثال بالا، توجه کنید که ویژگی HTTPTransport.io.timeout.millis با مقدار جدید 120000 در http.properties تنظیم شده است. این نشان می دهد که زمان I/O با موفقیت روی 120 ثانیه در پردازشگر پیام پیکربندی شده است.

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

بعدش چی؟

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