การกําหนดค่าระยะหมดเวลา I/O ในตัวประมวลผลข้อความ

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

เอกสารนี้อธิบายวิธีกำหนดค่าระยะหมดเวลา I/O สำหรับ Message Processor ของ Apigee Edge

ระยะหมดเวลา I/O ใน Message Processor แสดงถึงระยะเวลาที่ Message Processor รอรับการตอบกลับจากเซิร์ฟเวอร์แบ็กเอนด์หรือรอให้ซ็อกเก็ตพร้อมเขียน คำขอไปยังเซิร์ฟเวอร์แบ็กเอนด์ก่อนที่จะหมดเวลา

ค่าเริ่มต้นของระยะหมดเวลา I/O ของ Message Processor คือ 55 seconds ระยะหมดเวลานี้ใช้ได้กับเซิร์ฟเวอร์แบ็กเอนด์ที่กำหนดค่าในการกำหนดค่าปลายทางเป้าหมายและในนโยบาย ServiceCallout ของพร็อกซี API

คุณสามารถเพิ่มหรือลดระยะหมดเวลา I/O สำหรับ Message Processor จากค่าเริ่มต้น 55 seconds ได้ตามความต้องการ โดยกำหนดค่าได้ในตำแหน่งต่อไปนี้

  • ในพร็อกซี API
    • ปลายทางเป้าหมาย
    • นโยบาย ServiceCallout
  • ใน Message Processor

พร็อพเพอร์ตี้ต่อไปนี้ควบคุมระยะหมดเวลา I/O ใน Message Processor

ชื่อพร็อพเพอร์ตี้ ตำแหน่ง คำอธิบาย
io.timeout.millis

พร็อกซี API:

  • ปลายทางเป้าหมาย
  • นโยบาย Service Callout

นี่คือระยะเวลาสูงสุดที่ Message Processor จะดำเนินการต่อไปนี้

  • รอรับการตอบกลับจากเซิร์ฟเวอร์แบ็กเอนด์หลังจากสร้างการ เชื่อมต่อและส่งคำขอไปยังเซิร์ฟเวอร์แบ็กเอนด์ หรือ
  • รอให้ซ็อกเก็ตพร้อมเพื่อให้ Message Processor ส่งคำขอไปยัง เซิร์ฟเวอร์แบ็กเอนด์

หากไม่มีการตอบกลับจากเซิร์ฟเวอร์แบ็กเอนด์ภายในระยะหมดเวลานี้ Message Processor จะหมดเวลา

โดยค่าเริ่มต้น พร็อพเพอร์ตี้นี้จะใช้ค่าที่ตั้งไว้สำหรับ HTTPTransport.io.timeout.millis พร็อพเพอร์ตี้ใน Message Processor ค่าเริ่มต้นคือ 55 seconds

หากมีการแก้ไขพร็อพเพอร์ตี้นี้ด้วยค่าระยะหมดเวลาใหม่สำหรับพร็อกซี API ที่เฉพาะเจาะจง พร็อกซี API นั้นเท่านั้นที่จะได้รับผลกระทบ

HTTPTransport.io.timeout.millis Message Processor

นี่คือระยะเวลาสูงสุดที่ Message Processor จะดำเนินการต่อไปนี้

  • รอรับการตอบกลับจากเซิร์ฟเวอร์แบ็กเอนด์หลังจากสร้างการเชื่อมต่อ และส่งคำขอไปยังเซิร์ฟเวอร์แบ็กเอนด์ หรือ
  • รอให้ซ็อกเก็ตพร้อมเพื่อให้ Message Processor ส่งคำขอไปยัง เซิร์ฟเวอร์แบ็กเอนด์

หากไม่มีการตอบกลับจากเซิร์ฟเวอร์แบ็กเอนด์ภายในระยะหมดเวลานี้ Message Processor จะหมดเวลา

พร็อพเพอร์ตี้นี้ใช้สำหรับพร็อกซี API ทั้งหมดที่ทำงานใน Message Processor นี้

ค่าเริ่มต้นของพร็อพเพอร์ตี้นี้คือ 55 seconds

คุณสามารถแก้ไขพร็อพเพอร์ตี้ตามที่อธิบายไว้ใน หัวข้อการกำหนดค่าระยะหมดเวลา I/O ใน Message Processor หรือเขียนทับค่านี้โดยตั้งค่า io.timeout.millis ที่ระดับพร็อกซี API

ก่อนเริ่มต้น

โปรดตรวจสอบว่าคุณเข้าใจหัวข้อต่อไปนี้ก่อนที่จะทำตามขั้นตอนในเอกสารนี้

การกำหนดค่าระยะหมดเวลา I/O ในพร็อกซี API

คุณสามารถกำหนดค่าระยะหมดเวลา I/O ได้ในตำแหน่งต่อไปนี้ของพร็อกซี API

  • ปลายทางเป้าหมาย
  • นโยบาย ServiceCallout

การกำหนดค่าระยะหมดเวลา I/O ในปลายทางเป้าหมายของพร็อกซี API

ส่วนนี้อธิบายวิธีกำหนดค่าระยะหมดเวลา I/O ในปลายทางเป้าหมายของพร็อกซี API คุณสามารถกำหนดค่าระยะหมดเวลา I/O ผ่านพร็อพเพอร์ตี้ io.timeout.millis ซึ่ง แสดงถึงค่าระยะหมดเวลา I/O เป็นมิลลิวินาที

  1. ใน UI ของ Edge ให้เลือกพร็อกซี API ที่เฉพาะเจาะจงซึ่งคุณต้องการกำหนดค่าค่าระยะหมดเวลา I/O ใหม่
  2. เลือกปลายทางเป้าหมายที่เฉพาะเจาะจงซึ่งคุณต้องการแก้ไข
  3. เพิ่มพร็อพเพอร์ตี้ io.timeout.millis ที่มีค่าที่เหมาะสมภายใต้ <HTTPTargetConnection> องค์ประกอบในการกำหนดค่า TargetEndpoint
  4. ตัวอย่างเช่น หากต้องการเปลี่ยนระยะหมดเวลา I/O เป็น 120 วินาที ให้เพิ่มโค้ดบล็อกต่อไปนี้

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

    เนื่องจากพร็อพเพอร์ตี้ io.timeout.millis มีหน่วยเป็นมิลลิวินาที ค่าสำหรับ120 วินาทีจึงเป็น 120000

    ตัวอย่างต่อไปนี้แสดงวิธีกำหนดค่าระยะหมดเวลา I/O ในการกำหนดค่าปลายทางเป้าหมาย ของการกำหนดค่าพร็อกซี API:

    ตัวอย่างการกำหนดค่าปลายทางเป้าหมายโดยใช้ 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

การกำหนดค่าระยะหมดเวลา I/O ในนโยบาย ServiceCallout ของพร็อกซี API

ส่วนนี้อธิบายวิธีกำหนดค่าระยะหมดเวลา I/O ในนโยบาย ServiceCallout ของ พร็อกซี API คุณสามารถกำหนดค่าระยะหมดเวลา I/O ผ่านองค์ประกอบ <Timeout> หรือพร็อพเพอร์ตี้ io.timeout.millis ทั้งองค์ประกอบ <Timeout> และพร็อพเพอร์ตี้ io.timeout.millis แสดงถึงค่าระยะหมดเวลา I/O เป็นมิลลิวินาที

คุณสามารถกำหนดค่าระยะหมดเวลา I/O ในนโยบาย ServiceCallout ได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้

  • องค์ประกอบ <Timeout>
  • พร็อพเพอร์ตี้ io.timeout.millis

องค์ประกอบ Timeout

หากต้องการกำหนดค่าระยะหมดเวลา I/O ในนโยบาย ServiceCallout โดยใช้ <Timeout> องค์ประกอบ ให้ทำดังนี้

  1. ใน UI ของ Edge ให้เลือกพร็อกซี API ที่เฉพาะเจาะจงซึ่งคุณต้องการกำหนดค่า ค่าระยะหมดเวลา I/O ใหม่สำหรับนโยบาย ServiceCallout
  2. เลือกนโยบาย ServiceCallout ที่เฉพาะเจาะจงซึ่งคุณต้องการแก้ไข
  3. เพิ่มองค์ประกอบ <Timeout> ที่มีค่าที่เหมาะสมภายใต้การกำหนดค่า <ServiceCallout>

    ตัวอย่างเช่น หากต้องการเปลี่ยนระยะหมดเวลา I/O เป็น 120 วินาที ให้เพิ่มโค้ดบรรทัดต่อไปนี้

        <Timeout>120000</Timeout>

    เนื่องจากองค์ประกอบ <Timeout> มีหน่วยเป็นมิลลิวินาที ค่าสำหรับ120 วินาทีจึงเป็น 120000

    ตัวอย่างต่อไปนี้แสดงวิธีกำหนดค่าระยะหมดเวลา I/O ในนโยบาย ServiceCallout โดยใช้องค์ประกอบ <Timeout>

    ตัวอย่างการกำหนดค่านโยบาย ServiceCallout โดยใช้ 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

หากต้องการกำหนดค่าระยะหมดเวลา I/O ในนโยบาย ServiceCallout โดยใช้พร็อพเพอร์ตี้ io.timeout.millis ให้ทำดังนี้

  1. ใน UI ของ Edge ให้เลือกพร็อกซี API ที่เฉพาะเจาะจงซึ่งคุณต้องการกำหนดค่า ค่าระยะหมดเวลา I/O ใหม่สำหรับนโยบาย ServiceCallout
  2. เลือกนโยบาย ServiceCallout ที่เฉพาะเจาะจงซึ่งคุณต้องการแก้ไข
  3. เพิ่มพร็อพเพอร์ตี้ io.timeout.millis ที่มีค่าที่เหมาะสมภายใต้ <HTTPTargetConnection> องค์ประกอบในการกำหนดค่า TargetEndpoint

    ตัวอย่างเช่น หากต้องการเปลี่ยนระยะหมดเวลา I/O เป็น 120 วินาที ให้เพิ่มโค้ดบล็อกต่อไปนี้

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

    เนื่องจากพร็อพเพอร์ตี้ io.timeout.millis มีหน่วยเป็นมิลลิวินาที ค่าสำหรับ120 วินาทีจึงเป็น 120000

    ตัวอย่างต่อไปนี้แสดงวิธีกำหนดค่าระยะหมดเวลา I/O ในการกำหนดค่าปลายทางเป้าหมาย ของพร็อกซี API

    ตัวอย่างการกำหนดค่านโยบาย ServiceCallout โดยใช้ 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 โดยใช้เซิร์ฟเวอร์เป้าหมาย

    <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 ใน Message Processor

ส่วนนี้อธิบายวิธีกำหนดค่าระยะหมดเวลา I/O ใน Message Processor คุณสามารถกำหนดค่าระยะหมดเวลา I/O ผ่านพร็อพเพอร์ตี้ HTTPTransport.io.timeout.millis ซึ่งแสดงถึงค่าระยะหมดเวลา I/O เป็นมิลลิวินาทีในคอมโพเนนต์ Message Processor โดยใช้โทเค็นตามไวยากรณ์ที่อธิบายไว้ใน วิธีกำหนดค่า Edge

หากต้องการกำหนดค่าระยะหมดเวลา I/O ใน Message Processor ให้ทำดังนี้

  1. เปิดไฟล์ต่อไปนี้ในเครื่องมือแก้ไขในเครื่อง Message Processor หากยังไม่มี ให้สร้างไฟล์
    /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 ใน Message Processor เป็น 120 วินาที ให้เพิ่มบรรทัดต่อไปนี้

    conf_http_HTTPTransport.io.timeout.millis=120000
  3. บันทึกการเปลี่ยนแปลง
  4. ตรวจสอบว่าไฟล์พร็อพเพอร์ตี้เป็นของผู้ใช้ apigee ดังที่แสดงด้านล่าง
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. รีสตาร์ท Message Processor ดังที่แสดงด้านล่าง
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. หากมี Message Processor มากกว่า 1 รายการ ให้ทำซ้ำขั้นตอนข้างต้นใน Message Processors ทั้งหมด

การยืนยันระยะหมดเวลา I/O ใน Message Processor

ส่วนนี้อธิบายวิธียืนยันว่าระยะหมดเวลา I/O ได้รับการแก้ไขใน Message Processor เรียบร้อยแล้ว

แม้ว่าคุณจะใช้โทเค็น conf_http_HTTPTransport.io.timeout.millis เพื่อตั้งค่า ระยะหมดเวลา I/O ใน Message Processor แต่คุณต้องยืนยันว่าพร็อพเพอร์ตี้จริง HTTPTransport.io.timeout.millis ได้รับการตั้งค่าด้วยค่าใหม่หรือไม่

  1. ในเครื่อง Message Processor ให้ค้นหาพร็อพเพอร์ตี้ HTTPTransport.io.timeout.millis ในไดเรกทอรี /opt/apigee/edge-message-processor/conf และตรวจสอบว่ามีการตั้งค่าด้วยค่าใหม่หรือไม่ ดังที่แสดงด้านล่าง
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
  2. หากตั้งค่าระยะหมดเวลา I/O ใหม่ใน Message Processor สำเร็จ คำสั่งด้านบนจะแสดงค่าใหม่ในไฟล์ http.properties
  3. ตัวอย่างผลลัพธ์จากคำสั่งด้านบนหลังจากที่คุณกำหนดค่าระยะหมดเวลา I/O เป็น 120 วินาทีมีดังนี้

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

    ในเอาต์พุตตัวอย่างด้านบน โปรดสังเกตว่าพร็อพเพอร์ตี้ HTTPTransport.io.timeout.millis ได้รับการตั้งค่าด้วยค่าใหม่ 120000 ใน http.properties ซึ่งบ่งบอกว่ากำหนดค่าระยะหมดเวลา I/O เป็น 120 วินาทีใน Message Processor สำเร็จแล้ว

  4. หากยังเห็นค่าเก่าสำหรับพร็อพเพอร์ตี้ HTTPTransport.io.timeout.millis โปรดตรวจสอบว่าคุณได้ทำตามขั้นตอนทั้งหมดที่ระบุไว้ในการกำหนดค่าระยะหมดเวลา I/O ใน Message Processor อย่างถูกต้อง หากข้ามขั้นตอนใดไป ให้ทำซ้ำขั้นตอนทั้งหมดอีกครั้งอย่างถูกต้อง
  5. หากยังแก้ไขระยะหมดเวลา I/O ไม่ได้ โปรดติดต่อ ทีมสนับสนุนของ Apigee Edge

สิ่งที่ควรทำถัดไป

ดูข้อมูลเกี่ยวกับการกำหนดค่าระยะหมดเวลา I/O ในเราเตอร์