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

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

এই নথিটি ব্যাখ্যা করে কিভাবে Apigee Edge মেসেজ প্রসেসরের জন্য I/O টাইমআউট কনফিগার করতে হয়।

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

মেসেজ প্রসেসর I/O টাইমআউট ডিফল্ট মান হল 55 seconds । এই টাইমআউট পিরিয়ড টার্গেট এন্ডপয়েন্ট কনফিগারেশনে এবং আপনার API প্রক্সির ServiceCallout নীতিতে কনফিগার করা ব্যাকএন্ড সার্ভারগুলিতে প্রযোজ্য৷

বার্তা প্রসেসরের জন্য I/O সময়সীমা আপনার প্রয়োজনের উপর ভিত্তি করে 55 seconds ডিফল্ট মান থেকে বাড়ানো বা হ্রাস করা যেতে পারে। এটি নিম্নলিখিত জায়গায় কনফিগার করা যেতে পারে:

  • এপিআই প্রক্সিতে
    • টার্গেট এন্ডপয়েন্ট
    • সার্ভিস কলআউট নীতি
  • মেসেজ প্রসেসরে

নিম্নলিখিত বৈশিষ্ট্যগুলি বার্তা প্রসেসরগুলিতে I/O সময়সীমা নিয়ন্ত্রণ করে:

সম্পত্তির নাম অবস্থান বর্ণনা
io.timeout.millis

API প্রক্সি:

  • টার্গেট এন্ডপয়েন্ট
  • পরিষেবা কলআউট নীতি

এটি সর্বাধিক সময় যার জন্য বার্তা প্রসেসর নিম্নলিখিতগুলি করে:

  • সংযোগ স্থাপন এবং ব্যাকএন্ড সার্ভারে অনুরোধ পাঠানোর পরে, ব্যাকএন্ড সার্ভার থেকে একটি প্রতিক্রিয়া পাওয়ার জন্য অপেক্ষা করে বা
  • ব্যাকএন্ড সার্ভারে অনুরোধ পাঠানোর জন্য বার্তা প্রসেসরের জন্য সকেট প্রস্তুত হওয়ার জন্য অপেক্ষা করে।

যদি এই সময়সীমার মধ্যে ব্যাকএন্ড সার্ভার থেকে কোন প্রতিক্রিয়া না আসে, তাহলে বার্তা প্রসেসরের সময় শেষ হয়ে যাবে।

ডিফল্টরূপে, এই বৈশিষ্ট্যটি মেসেজ প্রসেসরে HTTPTransport.io.timeout.millis প্রপার্টির জন্য সেট করা মান নেয়। ডিফল্ট মান হল 55 seconds

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

HTTPTransport.io.timeout.millis বার্তা প্রসেসর

এটি সর্বাধিক সময় যার জন্য বার্তা প্রসেসর নিম্নলিখিতগুলি করে:

  • সংযোগ স্থাপন এবং ব্যাকএন্ড সার্ভারে অনুরোধ পাঠানোর পরে, ব্যাকএন্ড সার্ভার থেকে একটি প্রতিক্রিয়া পাওয়ার জন্য অপেক্ষা করে বা
  • ব্যাকএন্ড সার্ভারে অনুরোধ পাঠানোর জন্য বার্তা প্রসেসরের জন্য সকেট প্রস্তুত হওয়ার জন্য অপেক্ষা করে।

যদি এই সময়সীমার মধ্যে ব্যাকএন্ড সার্ভার থেকে কোন প্রতিক্রিয়া না আসে, তাহলে বার্তা প্রসেসরের সময় শেষ হয়ে যাবে।

এই বৈশিষ্ট্যটি এই মেসেজ প্রসেসরে চলমান সমস্ত API প্রক্সিগুলির জন্য ব্যবহৃত হয়।

এই সম্পত্তির ডিফল্ট মান হল 55 seconds

আপনি বার্তা প্রসেসরগুলিতে I/O টাইমআউট কনফিগার করার ব্যাখ্যা অনুসারে এই বৈশিষ্ট্যটিকে পরিবর্তন করতে পারেন, অথবা আপনি API প্রক্সি স্তরে io.timeout.millis বৈশিষ্ট্য সেট করে এই মানটিকে ওভাররাইট করতে পারেন।

আপনি শুরু করার আগে

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

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

I/O টাইমআউট নিম্নলিখিত API প্রক্সি জায়গায় কনফিগার করা যেতে পারে:

  • টার্গেট এন্ডপয়েন্ট
  • সার্ভিস কলআউট নীতি

API প্রক্সির টার্গেট এন্ডপয়েন্টে I/O টাইমআউট কনফিগার করা হচ্ছে

এই বিভাগটি ব্যাখ্যা করে যে কিভাবে আপনার API প্রক্সির টার্গেট এন্ডপয়েন্টে I/O টাইমআউট কনফিগার করতে হয়। I/O টাইমআউট io.timeout.millis সম্পত্তির মাধ্যমে কনফিগার করা যেতে পারে, যা মিলিসেকেন্ডে I/O টাইমআউট মান উপস্থাপন করে।

  1. এজ UI-তে, নির্দিষ্ট API প্রক্সি নির্বাচন করুন যেখানে আপনি নতুন I/O টাইমআউট মান কনফিগার করতে চান।
  2. আপনি পরিবর্তন করতে চান যে নির্দিষ্ট লক্ষ্য শেষ পয়েন্ট নির্বাচন করুন.
  3. TargetEndpoint কনফিগারেশনে <HTTPTargetConnection> উপাদানের অধীনে একটি উপযুক্ত মান সহ io.timeout.millis প্রপার্টি যোগ করুন।
  4. উদাহরণস্বরূপ, I/O টাইমআউট 120 সেকেন্ডে পরিবর্তন করতে, কোডের নিম্নলিখিত ব্লক যোগ করুন:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    যেহেতু io.timeout.millis প্রপার্টি মিলিসেকেন্ডে, তাই 120 সেকেন্ডের মান হল 120000

    নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে আপনার API প্রক্সির টার্গেট এন্ডপয়েন্ট কনফিগারেশনে I/O টাইমআউট কনফিগার করতে হয়:

    ব্যাকএন্ড সার্ভারের জন্য URL ব্যবহার করে টার্গেট এন্ডপয়েন্ট কনফিগারেশনের উদাহরণ

    <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>
    
  5. আপনার API প্রক্সিতে করা পরিবর্তনগুলি সংরক্ষণ করুন৷

API প্রক্সির ServiceCallout নীতিতে I/O টাইমআউট কনফিগার করা হচ্ছে

এই বিভাগটি ব্যাখ্যা করে কিভাবে আপনার API প্রক্সির ServiceCallout নীতিতে I/O টাইমআউট কনফিগার করতে হয়। I/O টাইমআউট <Timeout> উপাদান বা io.timeout.millis বৈশিষ্ট্যের মাধ্যমে কনফিগার করা যেতে পারে। <Timeout> উপাদান এবং io.timeout.millis বৈশিষ্ট্য উভয়ই মিলিসেকেন্ডে I/O টাইমআউট মান উপস্থাপন করে।

আপনি নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে ServiceCallout নীতিতে I/O টাইমআউট কনফিগার করতে পারেন:

  • <Timeout> উপাদান।
  • io.timeout.millis সম্পত্তি।

টাইমআউট উপাদান

<Timeout> উপাদান ব্যবহার করে ServiceCallout নীতিতে I/O টাইমআউট কনফিগার করতে, নিম্নলিখিতগুলি করুন:

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

    উদাহরণস্বরূপ, I/O টাইমআউট 120 সেকেন্ডে পরিবর্তন করতে, কোডের নিম্নলিখিত লাইন যোগ করুন:

        <Timeout>120000</Timeout>
    

    যেহেতু <Timeout> উপাদানটি মিলিসেকেন্ডে, তাই 120 সেকেন্ডের মান হল 120000

    নিচের উদাহরণটি দেখায় যে কিভাবে <Timeout> উপাদান ব্যবহার করে ServiceCallout নীতিতে I/O টাইমআউট কনফিগার করতে হয়:

    ব্যাকএন্ড সার্ভারের জন্য URL ব্যবহার করে পরিষেবা কলআউট নীতি কনফিগারেশনের উদাহরণ

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. আপনার API প্রক্সিতে করা পরিবর্তনগুলি সংরক্ষণ করুন৷

io.timeout.millis সম্পত্তি

io.timeout.millis বৈশিষ্ট্য ব্যবহার করে ServiceCallout নীতিতে I/O টাইমআউট কনফিগার করতে, নিম্নলিখিতগুলি করুন:

  1. এজ UI-তে, নির্দিষ্ট API প্রক্সি নির্বাচন করুন যেখানে আপনি ServiceCallout নীতির জন্য নতুন I/O টাইমআউট মান কনফিগার করতে চান।
  2. আপনি পরিবর্তন করতে চান যে নির্দিষ্ট ServiceCallout নীতি নির্বাচন করুন.
  3. TargetEndpoint কনফিগারেশনে <HTTPTargetConnection> উপাদানের অধীনে একটি উপযুক্ত মান সহ io.timeout.millis প্রপার্টি যোগ করুন।

    উদাহরণস্বরূপ, I/O টাইমআউট 120 সেকেন্ডে পরিবর্তন করতে, কোডের নিম্নলিখিত ব্লক যোগ করুন:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    যেহেতু io.timeout.millis প্রপার্টি মিলিসেকেন্ডে, তাই 120 সেকেন্ডের মান হল 120000

    নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে আপনার API প্রক্সির টার্গেট এন্ডপয়েন্ট কনফিগারেশনে I/O টাইমআউট কনফিগার করতে হয়:

    ব্যাকএন্ড সার্ভারের জন্য URL ব্যবহার করে পরিষেবা কলআউট নীতি কনফিগারেশনের উদাহরণ

    <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 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>
    
  4. আপনার API প্রক্সিতে করা পরিবর্তনগুলি সংরক্ষণ করুন৷

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

এই বিভাগটি ব্যাখ্যা করে কিভাবে মেসেজ প্রসেসরে I/O টাইমআউট কনফিগার করতে হয়। I/O টাইমআউট প্রপার্টি HTTPTransport.io.timeout.millis এর মাধ্যমে কনফিগার করা যেতে পারে, যা মেসেজ প্রসেসর কম্পোনেন্টে মিলিসেকেন্ডে I/O টাইমআউট মান উপস্থাপন করে, How to Configer Edge এ বর্ণিত সিনট্যাক্স অনুযায়ী টোকেন ব্যবহার করে।

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

  1. বার্তা প্রসেসর মেশিনে, একটি সম্পাদকে নিম্নলিখিত ফাইলটি খুলুন। যদি এটি ইতিমধ্যে বিদ্যমান না থাকে তবে এটি তৈরি করুন।
    /opt/apigee/customer/application/message-processor.properties
    

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

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. TIME_IN_MILLISECONDS এর জন্য একটি মান প্রতিস্থাপন করে বৈশিষ্ট্য ফাইলে নিম্নলিখিত বিন্যাসে একটি লাইন যোগ করুন:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    উদাহরণস্বরূপ, বার্তা প্রসেসরের I/O টাইমআউট 120 সেকেন্ডে পরিবর্তন করতে, নিম্নলিখিত লাইনটি যোগ করুন:

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. আপনার পরিবর্তন সংরক্ষণ করুন.
  4. নিশ্চিত করুন যে প্রপার্টি ফাইলটি নীচে দেখানো হিসাবে apigee ব্যবহারকারীর মালিকানাধীন:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. নীচে দেখানো হিসাবে বার্তা প্রসেসর পুনরায় চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. আপনার যদি একাধিক বার্তা প্রসেসর থাকে তবে সমস্ত বার্তা প্রসেসরে উপরের পদক্ষেপগুলি পুনরাবৃত্তি করুন৷

বার্তা প্রসেসরে I/O টাইমআউট যাচাই করা হচ্ছে

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

যদিও আপনি মেসেজ প্রসেসরে I/O টাইমআউট সেট করতে conf_http_HTTPTransport.io.timeout.millis টোকেন ব্যবহার করেন, তবুও আপনাকে যাচাই করতে হবে যে প্রকৃত সম্পত্তি HTTPTransport.io.timeout.millis নতুন মান দিয়ে সেট করা হয়েছে কিনা।

  1. মেসেজ প্রসেসর মেশিনে, /opt/apigee/edge-message-processor/conf ডিরেক্টরিতে HTTPTransport.io.timeout.millis প্রপার্টি অনুসন্ধান করুন এবং নীচে দেখানো হিসাবে এটি নতুন মান সহ সেট করা হয়েছে কিনা তা পরীক্ষা করুন:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. যদি নতুন I/O টাইমআউট মান সফলভাবে মেসেজ প্রসেসরে সেট করা হয়, তাহলে উপরের কমান্ডটি http.properties ফাইলে নতুন মান দেখায়।
  3. আপনি 120 সেকেন্ডে I/O টাইমআউট কনফিগার করার পরে উপরের কমান্ডের নমুনা ফলাফলটি নিম্নরূপ:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
    

    উপরের উদাহরণের আউটপুটে, লক্ষ্য করুন যে HTTPTransport.io.timeout.millis প্রপার্টি http.properties এ নতুন মান 120000 সহ সেট করা হয়েছে। এটি নির্দেশ করে যে I/O টাইমআউট সফলভাবে বার্তা প্রসেসরে 120 সেকেন্ডে কনফিগার করা হয়েছে।

  4. আপনি যদি এখনও HTTPTransport.io.timeout.millis সম্পত্তির জন্য পুরানো মান দেখতে পান, তাহলে যাচাই করুন যে আপনি মেসেজ প্রসেসরগুলিতে I/O টাইমআউট কনফিগার করার ক্ষেত্রে বর্ণিত সমস্ত পদক্ষেপ সঠিকভাবে অনুসরণ করেছেন৷ আপনি যদি কোনো ধাপ মিস করে থাকেন তবে সবগুলো ধাপ সঠিকভাবে পুনরাবৃত্তি করুন।
  5. আপনি যদি এখনও I/O টাইমআউট পরিবর্তন করতে না পারেন, তাহলে অনুগ্রহ করে Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।

এরপর কি?

রাউটারে I/O টাইমআউট কনফিগার করার বিষয়ে জানুন