شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
این سند نحوه پیکربندی زمانبندی ورودی/خروجی (I/O timeout) برای پردازندههای پیامرسان لبهای Apigee را توضیح میدهد.
زمان انتظار ورودی/خروجی (I/O) در پردازنده پیام (Message Processor) نشان دهنده زمانی است که پردازنده پیام منتظر میماند تا پاسخی از سرور بکاند دریافت کند یا سوکت آماده نوشتن درخواست به سرور بکاند شود، قبل از اینکه زمان آن به پایان برسد.
مقدار پیشفرض زمان انتظار ورودی/خروجی پردازنده پیام، 55 seconds است. این دوره زمانی برای سرورهای backend پیکربندیشده در پیکربندی نقطه پایانی هدف و در سیاست ServiceCallout پروکسی API شما اعمال میشود.
زمان انتظار ورودی/خروجی برای پردازندههای پیام (Message Processors) را میتوان از مقدار پیشفرض 55 seconds ، بسته به نیاز شما، افزایش یا کاهش داد. این زمان را میتوان در مکانهای زیر پیکربندی کرد:
- در پروکسی API
- نقطه پایانی هدف
- سیاست فراخوانی سرویس
- در پردازشگر پیام
ویژگیهای زیر، زمان انتظار ورودی/خروجی (I/O timeout) را در پردازندههای پیام (Message Processors) کنترل میکنند:
| نام ملک | مکان | توضیحات |
|---|---|---|
io.timeout.millis | پروکسی API:
| این حداکثر زمانی است که پردازشگر پیام موارد زیر را انجام میدهد:
اگر در این دوره زمانی هیچ پاسخی از سرور backend دریافت نشود، پردازنده پیام مهلتش تمام میشود. به طور پیشفرض، این ویژگی مقدار تعیینشده برای ویژگی اگر این ویژگی با یک مقدار timeout جدید برای یک پروکسی API خاص تغییر یابد، فقط آن پروکسی API تحت تأثیر قرار میگیرد. |
HTTPTransport.io.timeout.millis | پردازشگر پیام | این حداکثر زمانی است که پردازشگر پیام موارد زیر را انجام میدهد:
اگر در این دوره زمانی هیچ پاسخی از سرور backend دریافت نشود، پردازنده پیام مهلتش تمام میشود. این ویژگی برای همه پروکسیهای API که روی این پردازشگر پیام اجرا میشوند، استفاده میشود. مقدار پیشفرض این ویژگی شما میتوانید این ویژگی را همانطور که در پیکربندی زمان انتظار ورودی/خروجی در پردازندههای پیام توضیح داده شده است، تغییر دهید، یا میتوانید با تنظیم ویژگی |
قبل از اینکه شروع کنی
قبل از استفاده از مراحل این سند، مطمئن شوید که مباحث زیر را درک کردهاید:
- اگر با I/O timeout آشنا نیستید، به توضیحات ویژگی
io.timeout.millisدر TargetEndpoint Transport Property Specification مراجعه کنید. - اگر با پیکربندی ویژگیهای Edge برای Private Cloud آشنا نیستید، نحوه پیکربندی Edge را مطالعه کنید.
- مطمئن شوید که توصیههای موجود در «بهترین شیوهها برای پیکربندی زمانبندی ورودی/خروجی» را دنبال میکنید.
پیکربندی زمان انتظار ورودی/خروجی در پروکسی API
زمانبندی ورودی/خروجی (I/O timeout) را میتوان در مکانهای پروکسی API زیر پیکربندی کرد:
- نقطه پایانی هدف
- سیاست فراخوانی سرویس
پیکربندی زمان انتظار ورودی/خروجی در نقطه پایانی هدف پروکسی API
این بخش نحوه پیکربندی زمان انتظار ورودی/خروجی (I/O timeout) را در نقطه پایانی هدف پروکسی API شما توضیح میدهد. زمان انتظار ورودی/خروجی را میتوان از طریق ویژگی io.timeout.millis پیکربندی کرد که مقدار زمان انتظار ورودی/خروجی را بر حسب میلیثانیه نشان میدهد.
- در رابط کاربری Edge، پروکسی API خاصی را که میخواهید مقدار جدید زمانبندی ورودی/خروجی را در آن پیکربندی کنید، انتخاب کنید.
- نقطه پایانی هدف خاصی را که میخواهید تغییر دهید، انتخاب کنید.
- ویژگی
io.timeout.millisبا مقدار مناسب در زیر عنصر<HTTPTargetConnection>در پیکربندیTargetEndpointاضافه کنید. - تغییرات ایجاد شده در پروکسی API خود را ذخیره کنید.
برای مثال، برای تغییر زمان انتظار ورودی/خروجی به ۱۲۰ ثانیه، بلوک کد زیر را اضافه کنید:
<Properties>
<Property name="io.timeout.millis">120000</Property>
</Properties> از آنجایی که ویژگی io.timeout.millis بر حسب میلیثانیه است، مقدار ۱۲۰ ثانیه برابر 120000 است.
مثالهای زیر نحوه پیکربندی زمانبندی ورودی/خروجی (I/O timeout) را در پیکربندی نقطه پایانی هدف پروکسی API شما نشان میدهند:
مثال پیکربندی نقطه پایانی هدف با استفاده از URL برای سرور backend
<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>پیکربندی زمان انتظار ورودی/خروجی (I/O timeout) در سیاست ServiceCallout مربوط به پروکسی API
این بخش نحوه پیکربندی زمان انتظار ورودی/خروجی (I/O timeout) را در سیاست ServiceCallout پروکسی API شما توضیح میدهد. زمان انتظار ورودی/خروجی را میتوان از طریق عنصر <Timeout> یا ویژگی io.timeout.millis پیکربندی کرد. هم عنصر <Timeout> و هم ویژگی io.timeout.millis مقادیر زمان انتظار ورودی/خروجی را بر حسب میلیثانیه نشان میدهند.
شما میتوانید با استفاده از یکی از روشهای زیر، زمان انتظار ورودی/خروجی (I/O timeout) را در سیاست ServiceCallout پیکربندی کنید:
- عنصر
<Timeout>. - ویژگی
io.timeout.millis.
عنصر زمانبندی
برای پیکربندی زمانبندی I/O در سیاست ServiceCallout با استفاده از عنصر <Timeout> ، موارد زیر را انجام دهید:
- در رابط کاربری Edge، پروکسی API خاصی را که میخواهید مقدار جدید زمانبندی ورودی/خروجی را برای سیاست ServiceCallout پیکربندی کنید، انتخاب کنید.
- سیاست ServiceCallout خاصی را که میخواهید تغییر دهید، انتخاب کنید.
- عنصر
<Timeout>را با مقدار مناسب در پیکربندی<ServiceCallout>اضافه کنید.برای مثال، برای تغییر زمان انتظار ورودی/خروجی به ۱۲۰ ثانیه، خط کد زیر را اضافه کنید:
<Timeout>120000</Timeout>
از آنجایی که عنصر
<Timeout>بر حسب میلیثانیه است، مقدار ۱۲۰ ثانیه برابر120000است.مثال زیر نحوه پیکربندی زمانبندی I/O در سیاست ServiceCallout را با استفاده از عنصر
<Timeout>نشان میدهد:مثال پیکربندی سیاست ServiceCallout با استفاده از URL برای سرور backend
<ServiceCallout name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <Timeout>120000</Timeout> <HTTPTargetConnection> <Properties/> <URL>https://mocktarget.apigee.net/json</URL> </HTTPTargetConnection> </ServiceCallout> - تغییرات ایجاد شده در پروکسی API خود را ذخیره کنید.
ویژگی io.timeout.millis
برای پیکربندی زمانبندی I/O در سیاست ServiceCallout با استفاده از ویژگی io.timeout.millis ، موارد زیر را انجام دهید:
- در رابط کاربری Edge، پروکسی API خاصی را که میخواهید مقدار جدید زمانبندی ورودی/خروجی را برای سیاست ServiceCallout پیکربندی کنید، انتخاب کنید.
- سیاست ServiceCallout خاصی را که میخواهید تغییر دهید، انتخاب کنید.
- ویژگی
io.timeout.millisبا مقدار مناسب در زیر عنصر<HTTPTargetConnection>در پیکربندی TargetEndpoint اضافه کنید.برای مثال، برای تغییر زمان انتظار ورودی/خروجی به ۱۲۰ ثانیه، بلوک کد زیر را اضافه کنید:
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>از آنجایی که ویژگی
io.timeout.millisبر حسب میلیثانیه است، مقدار ۱۲۰ ثانیه برابر120000است.مثالهای زیر نحوه پیکربندی زمانبندی ورودی/خروجی (I/O timeout) را در پیکربندی نقطه پایانی هدف پروکسی API شما نشان میدهند:
مثال پیکربندی سیاست ServiceCallout با استفاده از URL برای سرور backend
<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> - تغییرات ایجاد شده در پروکسی API خود را ذخیره کنید.
پیکربندی زمان انتظار ورودی/خروجی در پردازندههای پیام
این بخش نحوه پیکربندی زمان انتظار ورودی/خروجی (I/O timeout) در پردازندههای پیام (Message Processors) را توضیح میدهد. زمان انتظار ورودی/خروجی را میتوان از طریق ویژگی HTTPTransport.io.timeout.millis پیکربندی کرد، که نشان دهنده مقدار زمان انتظار ورودی/خروجی بر حسب میلی ثانیه در کامپوننت پردازنده پیام است و از توکن مطابق با سینتکس شرح داده شده در نحوه پیکربندی Edge استفاده میکند.
برای پیکربندی زمانبندی ورودی/خروجی (I/O timeout) در پردازندههای پیام (Message Processors)، موارد زیر را انجام دهید:
- در دستگاه پردازشگر پیام، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
/opt/apigee/customer/application/message-processor.properties
برای مثال، برای باز کردن فایل با استفاده از
vi، دستور زیر را وارد کنید:vi /opt/apigee/customer/application/message-processor.properties
- یک خط با فرمت زیر به فایل ویژگیها اضافه کنید و مقداری را به جای TIME_IN_MILLISECONDS قرار دهید:
conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
برای مثال، برای تغییر زمان انتظار ورودی/خروجی در پردازنده پیام به ۱۲۰ ثانیه، خط زیر را اضافه کنید:
conf_http_HTTPTransport.io.timeout.millis=120000
- تغییرات خود را ذخیره کنید.
- مطمئن شوید که فایل properties متعلق به کاربر
apigeeاست، همانطور که در زیر نشان داده شده است:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- پردازشگر پیام را مطابق شکل زیر مجدداً راهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- اگر بیش از یک پردازشگر پیام دارید، مراحل بالا را روی همه پردازشگرهای پیام تکرار کنید.
تأیید زمان انقضای ورودی/خروجی در پردازندههای پیام
این بخش توضیح میدهد که چگونه میتوان تأیید کرد که زمانبندی ورودی/خروجی (I/O timeout) با موفقیت در پردازندههای پیام (Message Processors) تغییر داده شده است.
حتی اگر از توکن conf_http_HTTPTransport.io.timeout.millis برای تنظیم زمانبندی ورودی/خروجی در پردازشگر پیام استفاده میکنید، باید تأیید کنید که آیا ویژگی واقعی HTTPTransport.io.timeout.millis با مقدار جدید تنظیم شده است یا خیر.
- در دستگاه پردازشگر پیام، در دایرکتوری
/opt/apigee/edge-message-processor/confبه دنبال ویژگیHTTPTransport.io.timeout.millisبگردید و بررسی کنید که آیا مطابق شکل زیر با مقدار جدید تنظیم شده است یا خیر:grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- اگر مقدار جدید زمانبندی ورودی/خروجی با موفقیت در پردازنده پیام تنظیم شود، دستور بالا مقدار جدید را در فایل
http.propertiesنشان میدهد. - اگر هنوز مقدار قدیمی ویژگی
HTTPTransport.io.timeout.millisرا مشاهده میکنید، تأیید کنید که تمام مراحل ذکر شده در پیکربندی زمانبندی ورودی/خروجی در پردازندههای پیام را به درستی دنبال کردهاید. اگر هر مرحلهای را از دست دادهاید، تمام مراحل را دوباره به درستی تکرار کنید. - اگر هنوز قادر به تغییر زمانبندی ورودی/خروجی نیستید، لطفاً با پشتیبانی Apigee Edge تماس بگیرید.
نتیجه نمونه از دستور بالا پس از تنظیم زمان انتظار ورودی/خروجی روی ۱۲۰ ثانیه به شرح زیر است:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
در خروجی مثال بالا، توجه کنید که ویژگی HTTPTransport.io.timeout.millis با مقدار جدید 120000 در http.properties تنظیم شده است. این نشان میدهد که زمان انتظار ورودی/خروجی با موفقیت روی ۱۲۰ ثانیه در پردازنده پیام پیکربندی شده است.
بعدش چی؟
آشنایی با پیکربندی I/O timeout در روترها