شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
این سند نحوه پیکربندی وقفه ورودی/خروجی را در روترهای Apigee Edge توضیح میدهد.
زمان I/O روی روتر نشان دهنده زمانی است که روتر پس از برقراری اتصال و ارسال درخواست به پردازشگر پیام، منتظر دریافت پاسخ از پردازشگر پیام است. مقدار پیش فرض زمان I/O در روتر 57 ثانیه است.
زمان I/O برای روترها را می توان از مقدار پیش فرض 57 ثانیه بر اساس نیاز شما افزایش یا کاهش داد. می توان آن را به روش های زیر پیکربندی کرد:
- در هاست مجازی
- روی روتر
ویژگی های زیر زمان I/O را در روترها کنترل می کنند:
نام ملک | مکان | توضیحات |
---|---|---|
proxy_read_timeout | میزبان مجازی | حداکثر زمانی را مشخص می کند که روتر پس از برقراری اتصال و ارسال درخواست به پردازشگر پیام، منتظر دریافت پاسخ از پردازشگر پیام است. اگر در این بازه زمانی هیچ پاسخی از سوی پردازشگر پیام دریافت نشد، زمان روتر تمام می شود. به طور پیش فرض، این ویژگی مقدار تنظیم شده برای ویژگی اگر این ویژگی با یک مقدار مهلت زمانی جدید برای یک میزبان مجازی خاص اصلاح شود، تنها پروکسی های API که از آن میزبان مجازی خاص استفاده می کنند تحت تأثیر قرار می گیرند. |
conf_load_balancing_load.balancing.driver.proxy.read.timeout | روتر | حداکثر زمانی را مشخص می کند که روتر پس از برقراری اتصال و ارسال درخواست به پردازشگر پیام، منتظر دریافت پاسخ از پردازشگر پیام است. اگر در این بازه زمانی هیچ پاسخی از سوی پردازشگر پیام دریافت نشد، زمان روتر تمام می شود. این ویژگی برای همه هاست های مجازی روی این روتر استفاده می شود. مقدار پیش فرض این ویژگی 57 ثانیه است. میتوانید این ویژگی را همانطور که در پیکربندی مهلت زمانی ورودی/خروجی در روترها در زیر توضیح داده شده است تغییر دهید، یا میتوانید با تنظیم ویژگی با استفاده از نماد زیر می توانید فاصله زمانی این ویژگی را چیزی غیر از ثانیه تنظیم کنید: ms: milliseconds s: seconds (default) m: minutes h: hours d: days w: weeks M: months (length of 30 days) y: years (length of 365 days) |
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout | روتر | کل مدت زمانی را که روتر پس از برقراری اتصال و ارسال درخواست به هر پردازشگر پیام منتظر دریافت پاسخ از همه پردازشگرهای پیام است، مشخص می کند. این زمانی قابل اجرا است که نصب Edge شما دارای چندین پردازشگر پیام باشد و در صورت بروز خطا، سعی مجدد فعال شود. ارزش یکی از موارد زیر را دارد:
همانند ویژگی |
قبل از شروع
قبل از استفاده از مراحل این سند، مطمئن شوید که موضوعات زیر را درک کرده اید:
- اگر با ویژگیهای میزبان مجازی آشنایی ندارید، مرجع ویژگی میزبان مجازی را بخوانید.
- اگر با پیکربندی ویژگیهای Edge در Private Cloud آشنایی ندارید، نحوه پیکربندی Edge را بخوانید.
- مطمئن شوید که بهترین روشها را برای پیکربندی توصیههای وقفه ورودی/خروجی دنبال میکنید.
پیکربندی وقفه I/O در میزبان مجازی
این بخش نحوه پیکربندی زمان I/O در میزبان مجازی مرتبط با یک سازمان و محیط را توضیح می دهد. زمان I/O را می توان در میزبان مجازی از طریق ویژگی proxy_read_timeout
پیکربندی کرد، که مقدار وقفه ورودی/خروجی را در چند ثانیه نشان می دهد.
می توانید میزبان مجازی را با استفاده از یکی از روش های زیر پیکربندی کنید:
- رابط کاربری لبه
- Edge API
رابط کاربری لبه
برای پیکربندی میزبان مجازی با استفاده از رابط کاربری Edge، موارد زیر را انجام دهید:
- به Edge UI وارد شوید.
- به Admin > Virtual Hosts بروید.
- محیط خاصی را که میخواهید این تغییر را در آنجا ایجاد کنید، انتخاب کنید.
- میزبان مجازی خاصی را که میخواهید مقدار وقفه ورودی/خروجی جدید را برای آن پیکربندی کنید، انتخاب کنید.
- در قسمت Properties ، مقدار Proxy Read Timeout را در چند ثانیه بهروزرسانی کنید.
به عنوان مثال، اگر میخواهید تایم اوت را به 120 ثانیه تغییر دهید، 120 را مطابق شکل زیر تایپ کنید:
- تغییر را ذخیره کنید.
Edge API
برای پیکربندی میزبان مجازی با استفاده از API Edge، موارد زیر را انجام دهید:
- پیکربندی میزبان مجازی فعلی را با استفاده از Get virtual host API مطابق شکل زیر دریافت کنید:
کاربر عمومی ابر
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
کاربر خصوصی Cloud
curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
کجا:
{organization-name} نام سازمان است
{environment-name} نام محیط است
{virtualhost-name} نام میزبان مجازی است
نمونه پیکربندی هاست مجازی
{ "hostAliases": [ "api.myCompany,com" ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
- ویژگی
proxy_read_timeout
به پیکربندی میزبان مجازی موجود JSON در قسمتproperties
با مقدار در ثانیه اضافه کنید.به عنوان مثال، برای تغییر زمان I/O به 120 ثانیه، بلوک کد
properties
را مانند شکل زیر اضافه کنید:نمونه پیکربندی میزبان مجازی به روز شده
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
- پیکربندی میزبان مجازی به روز شده را در یک فایل ذخیره کنید. به عنوان مثال،
virtualhost-payload.json
. - پیکربندی
virtualhost
را با تغییر با استفاده از بهروزرسانی API میزبان مجازی به صورت زیر بهروزرسانی کنید:کاربر عمومی ابر
curl -v -X POST Content-Type: application/json https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
کاربر خصوصی Cloud
curl -v -X POST Content-Type: application/json http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
کجا:
{organization-name} نام سازمان است
{environment-name} نام محیط است
{virtualhost-name} نام میزبان مجازی است
تأیید وقفه I/O در میزبان های مجازی
این بخش توضیح میدهد که چگونه میتوان تأیید کرد که مهلت زمانی I/O با موفقیت در میزبان مجازی با استفاده از Edge API اصلاح شده است.
- Get virtual host API را اجرا کنید تا پیکربندی
virtualhost
مطابق شکل زیر دریافت کنید:کاربر عمومی ابر
curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
کاربر خصوصی Cloud
curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
کجا:
{organization-name} نام سازمان است
{environment-name} نام محیط است
{virtualhost-name} نام میزبان مجازی است
- بررسی کنید که ویژگی
proxy_read_timeout
روی مقدار جدید تنظیم شده باشد.نمونه پیکربندی میزبان مجازی به روز شده
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
در مثال بالا، توجه داشته باشید که
proxy_read_timeout
با مقدار جدید 120 ثانیه تنظیم شده است. - اگر همچنان مقدار قدیمی را برای
proxy_read_timeout,
سپس بررسی کنید که تمام مراحل ذکر شده در پیکربندی زمانبندی ورودی/خروجی در میزبان مجازی را به درستی دنبال کردهاید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید. - اگر هنوز نمیتوانید مهلت زمانی ورودی/خروجی را تغییر دهید، با پشتیبانی Apigee Edge تماس بگیرید.
پیکربندی وقفه I/O در روترها
این بخش نحوه پیکربندی زمان I/O در روترها را توضیح می دهد. زمان I/O را می توان از طریق ویژگی Router conf_load_balancing_load.balancing.driver.proxy.read.timeout
پیکربندی کرد، که مقدار زمان I/O را در چند ثانیه نشان می دهد.
برای پیکربندی زمان I/O روی روترها، موارد زیر را انجام دهید:
- در دستگاه روتر، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
/opt/apigee/customer/application/router.properties
به عنوان مثال، برای باز کردن فایل با
vi
، دستور زیر را وارد کنید:vi /opt/apigee/customer/application/router.properties
- یک خط با فرمت زیر به فایل
properties
اضافه کنید و مقداری را جایگزینtime_in_seconds
کنید: - تغییرات خود را ذخیره کنید
- همانطور که در زیر نشان داده شده است، اطمینان حاصل کنید که این فایل خصوصیات متعلق به کاربر
apigee
است:chown apigee:apigee /opt/apigee/customer/application/router.properties
- روتر را مانند شکل زیر راه اندازی مجدد کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- اگر بیش از یک روتر دارید، مراحل بالا را در همه روترها تکرار کنید.
conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
به عنوان مثال، برای تغییر زمان I/O در روتر به 120 ثانیه، خط زیر را اضافه کنید:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
شما همچنین می توانید زمان I/O را در چند دقیقه تغییر دهید. به عنوان مثال، برای تغییر مدت زمان به دو دقیقه، خط زیر را اضافه کنید:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
بررسی زمان I/O در روترها
این بخش نحوه تأیید اینکه زمان I/O با موفقیت در روترها اصلاح شده است را توضیح می دهد.
حتی اگر از token conf_load_balancing_load.balancing.driver.proxy.read.timeout
برای تنظیم زمان I/O در روتر استفاده می کنید، باید بررسی کنید که آیا ویژگی واقعی proxy_read_timeout
با مقدار جدید تنظیم شده است یا خیر.
- ویژگی
proxy_read_timeout
را در پوشه/opt/nginx/conf.d
جستجو کنید و بررسی کنید که آیا با مقدار جدید به صورت زیر تنظیم شده است:grep -ri "proxy_read_timeout" /opt/nginx/conf.d
- اگر مقدار جدید I/O timeout با موفقیت روی روتر تنظیم شود، دستور بالا مقدار جدید را در تمام فایلهای پیکربندی میزبان مجازی نشان میدهد.
در زیر نمونه ای از نتیجه دستور
grep
در بالا زمانی که زمان I/O 120 ثانیه است نشان داده شده است:/opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120; /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
در خروجی مثال بالا، توجه کنید که ویژگی
proxy_read_timeout
با مقدار جدید 120 در0-default.conf
تنظیم شده است که فایل پیکربندی میزبان مجازی پیش فرض است. این نشان می دهد که زمان I/O با موفقیت روی 120 ثانیه روی روتر پیکربندی شده است. - اگر همچنان مقدار قدیمی ویژگی
proxy_read_timeout
را میبینید، بررسی کنید که تمام مراحل ذکر شده در پیکربندی مهلت زمانی ورودی/خروجی روی روترها را به درستی دنبال کردهاید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید. - اگر هنوز نمیتوانید مهلت زمانی ورودی/خروجی را تغییر دهید، با پشتیبانی Apigee Edge تماس بگیرید.
بعدش چی؟
درباره پیکربندی وقفه ورودی/خروجی در پردازشگر پیام بیاموزید