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

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

Apigee Edge-এর রাউটারে কীভাবে I/O টাইম-আউট কনফিগার করতে হয় তা এই ডকুমেন্টে ব্যাখ্যা করা হয়েছে।

রাউটারে I/O টাইমআউট হল সেই সময়সীমা যার মধ্যে কানেকশন স্থাপন করার পরে এবং মেসেজ প্রসেসরকে অনুরোধ পাঠানোর পরে মেসেজ প্রসেসর থেকে কোনও উত্তর পাওয়ার জন্য রাউটার অপেক্ষা করে। রাউটারে I/O টাইমআউটের ডিফল্ট ভ্যালু হল ৫৭ সেকেন্ড।

আপনার প্রয়োজন অনুযায়ী, রাউটারের I/O টাইমআউট ডিফল্ট ভ্যালু ৫৭ সেকেন্ড থেকে বাড়ানো বা কমানো যেতে পারে। এটি নিম্নলিখিত উপায়ে কনফিগার করা যেতে পারে:

  • ভার্চুয়াল হোস্টে
  • রাউটারে

নিম্নলিখিত প্রপার্টি রাউটারে I/O টাইম-আউট কন্ট্রোল করে:

প্রপার্টির নাম লোকেশন বিবরণ
proxy_read_timeout ভার্চুয়াল হোস্ট

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

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

ডিফল্ট হিসেবে, এই প্রপার্টি রাউটারে সেট করা conf_load_balancing_load.balancing.driver.proxy.read.timeout প্রপার্টির ভ্যালু নেয়। ডিফল্ট মান হল ৫৭ সেকেন্ড।

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

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 রাউটার

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

আপনার Edge ইনস্টলেশনে একাধিক মেসেজ প্রসেসর থাকলে এবং সমস্যা হলে আবার চেষ্টা করার সুবিধা চালু থাকলে এটি প্রযোজ্য। এটির মান নিম্নলিখিতগুলির মধ্যে একটি:

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

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

শুরু করার আগে

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

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

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

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

  • Edge UI
  • Edge API

Edge UI

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

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

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

    প্রক্সি রিড টাইমআউট ভ্যালু ১২০

  6. পরিবর্তন সেভ করুন।

Edge API

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} হল ভার্চুয়াল হোস্টের নাম

    virtualhost কনফিগারেশনের নমুনা

        {
          "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. সেকেন্ডে ভ্যালু সহ properties-এর অধীনে বর্তমান ভার্চুয়াল হোস্ট কনফিগারেশনে JSON পেলোড 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. নিম্নলিখিত পদ্ধতি অনুসরণ করে ভার্চুয়াল হোস্ট আপডেট করুন 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 কনফিগারেশন পেতে ভার্চুয়াল হোস্ট পান 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 সহায়তা টিমের সাথে যোগাযোগ করুন।

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

    I/O টাইমআউট ১২০ সেকেন্ড হলে, উপরে দেওয়া grep কমান্ডের স্যাম্পেল ফলাফল নিচে দেওয়া হল:

    /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 নতুন ভ্যালু ১২০ দিয়ে 0-default.conf-এ সেট করা হয়েছে, যেটি হল ডিফল্ট ভার্চুয়াল হোস্টের জন্য কনফিগারেশন ফাইল। এটি থেকে বোঝা যায় যে রাউটারে I/O টাইম-আউট সফলভাবে ১২০ সেকেন্ডে কনফিগার করা হয়েছে।

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

এর পরে কী হবে?

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