রাউটারে I/O টাইমআউট কনফিগার করা হচ্ছে

আপনি 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 প্রপার্টির জন্য সেট করা মানটি গ্রহণ করে। এর ডিফল্ট মান হলো ৫৭ সেকেন্ড

যদি কোনো নির্দিষ্ট ভার্চুয়াল হোস্টের জন্য এই প্রপার্টিটি একটি নতুন টাইমআউট ভ্যালু দিয়ে পরিবর্তন করা হয়, তাহলে শুধুমাত্র সেই নির্দিষ্ট ভার্চুয়াল হোস্ট ব্যবহারকারী এপিআই প্রক্সিগুলোই প্রভাবিত হবে।

conf_load_balancing_load.balancing.driver.proxy.read.timeout রাউটার

সংযোগ স্থাপন এবং মেসেজ প্রসেসরের কাছে অনুরোধ পাঠানোর পর, রাউটারটি তার কাছ থেকে প্রতিক্রিয়া পাওয়ার জন্য সর্বোচ্চ কতক্ষণ অপেক্ষা করবে, তা এটি নির্দিষ্ট করে।

এই টাইমআউট সময়ের মধ্যে মেসেজ প্রসেসরের কাছ থেকে কোনো সাড়া না পাওয়া গেলে, রাউটারটি টাইমআউট হয়ে যায়।

এই রাউটারের সমস্ত ভার্চুয়াল হোস্টের জন্য এই প্রপার্টিটি ব্যবহৃত হয়।

এই প্রপার্টির ডিফল্ট মান হলো ৫৭ সেকেন্ড

আপনি নিচে "রাউটারে I/O টাইমআউট কনফিগার করা" অংশে ব্যাখ্যা করা পদ্ধতি অনুযায়ী এই প্রপার্টিটি পরিবর্তন করতে পারেন, অথবা ভার্চুয়াল হোস্ট লেভেলে proxy_read_timeout প্রপার্টি সেট করে এই মানটি ওভাররাইট করতে পারেন।

নিম্নলিখিত সংকেত ব্যবহার করে আপনি এই প্রপার্টির জন্য সময় ব্যবধান সেকেন্ড ছাড়া অন্য কিছু হিসেবে সেট করতে পারেন:

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) অপশনটি চালু থাকে। এর মান নিম্নলিখিতগুলির মধ্যে একটি:

  • conf_load_balancing_load.balancing.driver.proxy.read.timeout এর বর্তমান মান
  • ডিফল্ট মান ৫৭ সেকেন্ড

conf_load_balancing_load.balancing.driver.proxy.read.timeout প্রপার্টির মতোই, আপনি ডিফল্ট (সেকেন্ড) ছাড়াও অন্যান্য সময় ব্যবধান নির্দিষ্ট করতে পারেন।

শুরু করার আগে

এই নথিতে বর্ণিত ধাপগুলো ব্যবহার করার আগে, নিম্নলিখিত বিষয়গুলো আপনি ভালোভাবে বুঝেছেন কিনা তা নিশ্চিত করুন:

ভার্চুয়াল হোস্টে I/O টাইমআউট কনফিগার করা

এই বিভাগে একটি সংস্থা এবং পরিবেশের সাথে যুক্ত ভার্চুয়াল হোস্টে কীভাবে I/O টাইমআউট কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে। ভার্চুয়াল হোস্টে proxy_read_timeout প্রপার্টির মাধ্যমে I/O টাইমআউট কনফিগার করা যায়, যা সেকেন্ডে I/O টাইমআউটের মান নির্দেশ করে।

আপনি নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে ভার্চুয়াল হোস্টটি কনফিগার করতে পারেন:

  • এজ ইউআই
  • এজ এপিআই

এজ ইউআই

Edge UI ব্যবহার করে ভার্চুয়াল হোস্ট কনফিগার করতে, নিম্নলিখিতগুলি করুন:

  1. Edge UI- তে লগইন করুন।
  2. অ্যাডমিন > ভার্চুয়াল হোস্ট- এ যান।
  3. একটি নির্দিষ্ট পরিবেশ নির্বাচন করুন যেখানে আপনি এই পরিবর্তনটি করতে চান।
  4. সেই নির্দিষ্ট ভার্চুয়াল হোস্টটি নির্বাচন করুন যার জন্য আপনি নতুন I/O টাইমআউট মান কনফিগার করতে চান।
  5. প্রোপার্টিজ-এর অধীনে, প্রক্সি রিড টাইমআউট-এর মান সেকেন্ডে আপডেট করুন।

    উদাহরণস্বরূপ, যদি আপনি টাইমআউট ১২০ সেকেন্ডে পরিবর্তন করতে চান, তাহলে নিচের চিত্রে দেখানো অনুযায়ী ১২০ টাইপ করুন:

    Proxy read timeout value of 120

  6. পরিবর্তনটি সংরক্ষণ করুন।

এজ এপিআই

Edge API ব্যবহার করে ভার্চুয়াল হোস্ট কনফিগার করতে, নিম্নলিখিতগুলি করুন:

  1. নিচে দেখানো 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
        }
  2. বিদ্যমান ভার্চুয়াল হোস্ট কনফিগারেশন 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
    }
  3. আপডেট করা ভার্চুয়াল হোস্ট কনফিগারেশনটি একটি ফাইলে সংরক্ষণ করুন। উদাহরণস্বরূপ, virtualhost-payload.json
  4. নিম্নলিখিতভাবে ' 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 টাইমআউট সফলভাবে পরিবর্তন করা হয়েছে কিনা তা যাচাই করা যায়।

  1. নিচে দেখানো অনুযায়ী 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} হলো ভার্চুয়াল হোস্টের নাম।

  2. নিশ্চিত করুন যে 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 ১২০ সেকেন্ডের নতুন মান দিয়ে সেট করা হয়েছে।

  3. আপনি যদি এখনও proxy_read_timeout, তাহলে যাচাই করুন যে আপনি ভার্চুয়াল হোস্টে I/O টাইমআউট কনফিগার করার নির্দেশিকায় বর্ণিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা। যদি কোনো ধাপ বাদ পড়ে থাকে, তাহলে সমস্ত ধাপ আবার সঠিকভাবে পুনরাবৃত্তি করুন।
  4. আপনি যদি এখনও I/O টাইমআউট পরিবর্তন করতে না পারেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

রাউটারে I/O টাইমআউট কনফিগার করা

এই অংশে রাউটারে কীভাবে I/O টাইমআউট কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে। I/O টাইমআউটটি রাউটার প্রপার্টি conf_load_balancing_load.balancing.driver.proxy.read.timeout এর মাধ্যমে কনফিগার করা যায়, যা সেকেন্ডে I/O টাইমআউটের মান নির্দেশ করে।

রাউটারগুলিতে I/O টাইমআউট কনফিগার করতে, নিম্নলিখিতগুলি করুন:

  1. রাউটার মেশিনে, নিম্নলিখিত ফাইলটি একটি এডিটরে খুলুন। যদি এটি আগে থেকে বিদ্যমান না থাকে, তবে এটি তৈরি করুন।
    /opt/apigee/customer/application/router.properties

    উদাহরণস্বরূপ, vi দিয়ে ফাইলটি খুলতে, নিম্নলিখিত কমান্ডটি লিখুন:

    vi /opt/apigee/customer/application/router.properties
  2. properties ফাইলে নিম্নলিখিত ফরম্যাটে একটি লাইন যোগ করুন, যেখানে time_in_seconds এর জায়গায় একটি মান বসাতে হবে:
  3. 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
  4. আপনার পরিবর্তনগুলো সংরক্ষণ করুন।
  5. নিশ্চিত করুন যে এই প্রোপার্টিজ ফাইলটির মালিক নিচে দেখানো অনুযায়ী apigee ব্যবহারকারী।
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  6. নিচে দেখানো পদ্ধতি অনুযায়ী রাউটারটি রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. আপনার যদি একাধিক রাউটার থাকে, তাহলে সব রাউটারে উপরের ধাপগুলো পুনরাবৃত্তি করুন।

রাউটারগুলিতে I/O টাইমআউট যাচাই করা হচ্ছে

এই অংশে ব্যাখ্যা করা হয়েছে কিভাবে যাচাই করতে হয় যে রাউটারগুলিতে I/O টাইমআউট সফলভাবে পরিবর্তন করা হয়েছে।

যদিও আপনি রাউটারে I/O টাইমআউট সেট করার জন্য conf_load_balancing_load.balancing.driver.proxy.read.timeout টোকেনটি ব্যবহার করেন, আপনাকে যাচাই করতে হবে যে প্রকৃত proxy_read_timeout প্রপার্টিটি নতুন মান দিয়ে সেট করা হয়েছে কিনা।

  1. /opt/nginx/conf.d ডিরেক্টরিতে proxy_read_timeout প্রপার্টিটি খুঁজুন এবং পরীক্ষা করে দেখুন যে এটি নিম্নলিখিত নতুন মান দিয়ে সেট করা হয়েছে কিনা:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
  2. যদি রাউটারে নতুন 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.confproxy_read_timeout প্রপার্টিটির নতুন মান 120 সেট করা হয়েছে। এটি নির্দেশ করে যে রাউটারে I/O টাইমআউট সফলভাবে 120 সেকেন্ডে কনফিগার করা হয়েছে।

  3. যদি আপনি এখনও proxy_read_timeout প্রপার্টির জন্য পুরোনো মান দেখতে পান, তাহলে যাচাই করুন যে আপনি "রাউটারে I/O টাইমআউট কনফিগার করা" অংশে বর্ণিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা। যদি কোনো ধাপ বাদ পড়ে থাকে, তাহলে সমস্ত ধাপ আবার সঠিকভাবে পুনরাবৃত্তি করুন।
  4. আপনি যদি এখনও I/O টাইমআউট পরিবর্তন করতে না পারেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

এরপর কী?

মেসেজ প্রসেসরে I/O টাইমআউট কনফিগার করা সম্পর্কে জানুন