আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
এই ডকুমেন্টটিতে Apigee Edge-এর রাউটারগুলিতে I/O টাইমআউট কীভাবে কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে।
রাউটারের I/O টাইমআউট হলো সেই সময়কাল, যা সংযোগ স্থাপন এবং মেসেজ প্রসেসরের কাছে অনুরোধ পাঠানোর পর, রাউটারটি তার কাছ থেকে প্রতিক্রিয়া পাওয়ার জন্য অপেক্ষা করে। রাউটারের I/O টাইমআউটের ডিফল্ট মান হলো ৫৭ সেকেন্ড।
আপনার প্রয়োজন অনুযায়ী রাউটারের I/O টাইমআউট ডিফল্ট ৫৭ সেকেন্ড থেকে বাড়ানো বা কমানো যেতে পারে। এটি নিম্নলিখিত উপায়ে কনফিগার করা যায়:
- একটি ভার্চুয়াল হোস্টে
- রাউটারে
নিম্নলিখিত প্রোপার্টিগুলো রাউটারের I/O টাইমআউট নিয়ন্ত্রণ করে:
| সম্পত্তির নাম | অবস্থান | বর্ণনা |
|---|---|---|
proxy_read_timeout | ভার্চুয়াল হোস্ট | সংযোগ স্থাপন এবং মেসেজ প্রসেসরের কাছে অনুরোধ পাঠানোর পর, রাউটারটি তার কাছ থেকে প্রতিক্রিয়া পাওয়ার জন্য সর্বোচ্চ কতক্ষণ অপেক্ষা করবে, তা এটি নির্দিষ্ট করে। এই টাইমআউট সময়ের মধ্যে মেসেজ প্রসেসরের কাছ থেকে কোনো সাড়া না পাওয়া গেলে, রাউটারটি টাইমআউট হয়ে যায়। ডিফল্টরূপে, এই প্রপার্টিটি রাউটারের যদি কোনো নির্দিষ্ট ভার্চুয়াল হোস্টের জন্য এই প্রপার্টিটি একটি নতুন টাইমআউট ভ্যালু দিয়ে পরিবর্তন করা হয়, তাহলে শুধুমাত্র সেই নির্দিষ্ট ভার্চুয়াল হোস্ট ব্যবহারকারী এপিআই প্রক্সিগুলোই প্রভাবিত হবে। |
conf_load_balancing_load.balancing.driver.proxy.read.timeout | রাউটার | সংযোগ স্থাপন এবং মেসেজ প্রসেসরের কাছে অনুরোধ পাঠানোর পর, রাউটারটি তার কাছ থেকে প্রতিক্রিয়া পাওয়ার জন্য সর্বোচ্চ কতক্ষণ অপেক্ষা করবে, তা এটি নির্দিষ্ট করে। এই টাইমআউট সময়ের মধ্যে মেসেজ প্রসেসরের কাছ থেকে কোনো সাড়া না পাওয়া গেলে, রাউটারটি টাইমআউট হয়ে যায়। এই রাউটারের সমস্ত ভার্চুয়াল হোস্টের জন্য এই প্রপার্টিটি ব্যবহৃত হয়। এই প্রপার্টির ডিফল্ট মান হলো ৫৭ সেকেন্ড । আপনি নিচে "রাউটারে I/O টাইমআউট কনফিগার করা" অংশে ব্যাখ্যা করা পদ্ধতি অনুযায়ী এই প্রপার্টিটি পরিবর্তন করতে পারেন, অথবা ভার্চুয়াল হোস্ট লেভেলে নিম্নলিখিত সংকেত ব্যবহার করে আপনি এই প্রপার্টির জন্য সময় ব্যবধান সেকেন্ড ছাড়া অন্য কিছু হিসেবে সেট করতে পারেন: 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 ইনস্টলেশনে একাধিক মেসেজ প্রসেসর থাকে এবং ত্রুটি ঘটলে পুনরায় চেষ্টা করার (retry) অপশনটি চালু থাকে। এর মান নিম্নলিখিতগুলির মধ্যে একটি:
|
শুরু করার আগে
এই নথিতে বর্ণিত ধাপগুলো ব্যবহার করার আগে, নিম্নলিখিত বিষয়গুলো আপনি ভালোভাবে বুঝেছেন কিনা তা নিশ্চিত করুন:
- আপনি যদি ভার্চুয়াল হোস্ট প্রোপার্টিগুলোর সাথে পরিচিত না হন, তাহলে ভার্চুয়াল হোস্ট প্রোপার্টি রেফারেন্স পড়ুন।
- আপনি যদি প্রাইভেট ক্লাউডে Edge-এর প্রোপার্টি কনফিগার করার বিষয়ে পরিচিত না হন, তাহলে “How to configure Edge” পড়ুন।
- I/O টাইমআউট কনফিগার করার জন্য সর্বোত্তম অনুশীলন ও সুপারিশগুলো অনুসরণ করা নিশ্চিত করুন।
ভার্চুয়াল হোস্টে I/O টাইমআউট কনফিগার করা
এই বিভাগে একটি সংস্থা এবং পরিবেশের সাথে যুক্ত ভার্চুয়াল হোস্টে কীভাবে I/O টাইমআউট কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে। ভার্চুয়াল হোস্টে proxy_read_timeout প্রপার্টির মাধ্যমে I/O টাইমআউট কনফিগার করা যায়, যা সেকেন্ডে I/O টাইমআউটের মান নির্দেশ করে।
আপনি নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে ভার্চুয়াল হোস্টটি কনফিগার করতে পারেন:
- এজ ইউআই
- এজ এপিআই
এজ ইউআই
Edge UI ব্যবহার করে ভার্চুয়াল হোস্ট কনফিগার করতে, নিম্নলিখিতগুলি করুন:
- Edge UI- তে লগইন করুন।
- অ্যাডমিন > ভার্চুয়াল হোস্ট- এ যান।
- একটি নির্দিষ্ট পরিবেশ নির্বাচন করুন যেখানে আপনি এই পরিবর্তনটি করতে চান।
- সেই নির্দিষ্ট ভার্চুয়াল হোস্টটি নির্বাচন করুন যার জন্য আপনি নতুন I/O টাইমআউট মান কনফিগার করতে চান।
- প্রোপার্টিজ-এর অধীনে, প্রক্সি রিড টাইমআউট-এর মান সেকেন্ডে আপডেট করুন।
উদাহরণস্বরূপ, যদি আপনি টাইমআউট ১২০ সেকেন্ডে পরিবর্তন করতে চান, তাহলে নিচের চিত্রে দেখানো অনুযায়ী ১২০ টাইপ করুন:

- পরিবর্তনটি সংরক্ষণ করুন।
এজ এপিআই
Edge API ব্যবহার করে ভার্চুয়াল হোস্ট কনফিগার করতে, নিম্নলিখিতগুলি করুন:
- নিচে দেখানো 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>প্রাইভেট ক্লাউড ব্যবহারকারী
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 } - বিদ্যমান ভার্চুয়াল হোস্ট কনফিগারেশন JSON পেলোডের '
propertiesঅংশেproxy_read_timeoutপ্রপার্টিটি সেকেন্ডে মানসহ যোগ করুন।উদাহরণস্বরূপ, I/O টাইমআউট ১২০ সেকেন্ডে পরিবর্তন করতে, নিচে দেখানো অনুযায়ী
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। - নিম্নলিখিতভাবে ' Update a virtual host' API ব্যবহার করে
virtualhostকনফিগারেশনটি পরিবর্তনসহ আপডেট করুন:পাবলিক ক্লাউড ব্যবহারকারী
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>
প্রাইভেট ক্লাউড ব্যবহারকারী
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 টাইমআউট যাচাই করা হচ্ছে
এই অংশে ব্যাখ্যা করা হয়েছে কিভাবে Edge API ব্যবহার করে ভার্চুয়াল হোস্টে I/O টাইমআউট সফলভাবে পরিবর্তন করা হয়েছে কিনা তা যাচাই করা যায়।
- নিচে দেখানো অনুযায়ী
virtualhostকনফিগারেশন পেতে 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>প্রাইভেট ক্লাউড ব্যবহারকারী
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১২০ সেকেন্ডের নতুন মান দিয়ে সেট করা হয়েছে। - আপনি যদি এখনও
proxy_read_timeout,তাহলে যাচাই করুন যে আপনি ভার্চুয়াল হোস্টে I/O টাইমআউট কনফিগার করার নির্দেশিকায় বর্ণিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা। যদি কোনো ধাপ বাদ পড়ে থাকে, তাহলে সমস্ত ধাপ আবার সঠিকভাবে পুনরাবৃত্তি করুন। - আপনি যদি এখনও I/O টাইমআউট পরিবর্তন করতে না পারেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
রাউটারে I/O টাইমআউট কনফিগার করা
এই অংশে রাউটারে কীভাবে I/O টাইমআউট কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে। I/O টাইমআউটটি রাউটার প্রপার্টি 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 টাইমআউট ১২০ সেকেন্ডে পরিবর্তন করতে, নিম্নলিখিত লাইনটি যোগ করুন:
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 টাইমআউট সফলভাবে পরিবর্তন করা হয়েছে।
যদিও আপনি রাউটারে I/O টাইমআউট সেট করার জন্য conf_load_balancing_load.balancing.driver.proxy.read.timeout টোকেনটি ব্যবহার করেন, আপনাকে যাচাই করতে হবে যে প্রকৃত proxy_read_timeout প্রপার্টিটি নতুন মান দিয়ে সেট করা হয়েছে কিনা।
-
/opt/nginx/conf.dডিরেক্টরিতেproxy_read_timeoutপ্রপার্টিটি খুঁজুন এবং পরীক্ষা করে দেখুন যে এটি নিম্নলিখিত নতুন মান দিয়ে সেট করা হয়েছে কিনা:grep -ri "proxy_read_timeout" /opt/nginx/conf.d
- যদি রাউটারে নতুন I/O টাইমআউট মান সফলভাবে সেট করা হয়, তাহলে উপরের কমান্ডটি সমস্ত ভার্চুয়াল হোস্ট কনফিগারেশন ফাইলে নতুন মানটি দেখায়।
নিম্নলিখিতটি হলো উপরের
grepকমান্ড থেকে প্রাপ্ত নমুনা ফলাফল, যখন I/O টাইমআউট ১২০ সেকেন্ড হয়:/opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120; /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
উপরের উদাহরণ আউটপুটে লক্ষ্য করুন যে, ডিফল্ট ভার্চুয়াল হোস্টের কনফিগারেশন ফাইল
0-default.confএproxy_read_timeoutপ্রপার্টিটির নতুন মান 120 সেট করা হয়েছে। এটি নির্দেশ করে যে রাউটারে I/O টাইমআউট সফলভাবে 120 সেকেন্ডে কনফিগার করা হয়েছে। - যদি আপনি এখনও
proxy_read_timeoutপ্রপার্টির জন্য পুরোনো মান দেখতে পান, তাহলে যাচাই করুন যে আপনি "রাউটারে I/O টাইমআউট কনফিগার করা" অংশে বর্ণিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা। যদি কোনো ধাপ বাদ পড়ে থাকে, তাহলে সমস্ত ধাপ আবার সঠিকভাবে পুনরাবৃত্তি করুন। - আপনি যদি এখনও I/O টাইমআউট পরিবর্তন করতে না পারেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
এরপর কী?
মেসেজ প্রসেসরে I/O টাইমআউট কনফিগার করা সম্পর্কে জানুন