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

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

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

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

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

การหมดเวลา I/O สำหรับตัวประมวลผลข้อความสามารถเพิ่มหรือลดจากค่าเริ่มต้น 55 seconds ขึ้นอยู่กับความต้องการของคุณ คุณสามารถกําหนดค่าได้จากที่ต่อไปนี้

  • ในพร็อกซี API
    • ปลายทางเป้าหมาย
    • นโยบายคำขอราคาเสนอบริการ
  • ในตัวประมวลผลข้อความ

พร็อพเพอร์ตี้ต่อไปนี้จะควบคุมการหมดเวลา I/O บนตัวประมวลผลข้อความ

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

พร็อกซี API:

  • ปลายทางเป้าหมาย
  • นโยบายข้อความไฮไลต์บริการ

นี่คือเวลาสูงสุดที่โปรแกรมประมวลผลข้อความจะดำเนินการต่อไปนี้:

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

หากไม่มีการตอบสนองจากเซิร์ฟเวอร์แบ็กเอนด์ภายในระยะหมดเวลานี้ ฟังก์ชัน โปรแกรมประมวลผลข้อความหมดเวลา

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

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

HTTPTransport.io.timeout.millis Message Processor

นี่คือเวลาสูงสุดที่โปรแกรมประมวลผลข้อความจะดำเนินการต่อไปนี้:

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

หากไม่มีการตอบสนองจากเซิร์ฟเวอร์แบ็กเอนด์ภายในระยะหมดเวลานี้ ฟังก์ชัน โปรแกรมประมวลผลข้อความหมดเวลา

คุณสมบัตินี้ใช้กับพร็อกซี API ทั้งหมดที่ทำงานในโปรแกรมประมวลผลข้อความนี้

ค่าเริ่มต้นของคุณสมบัตินี้คือ 55 seconds

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

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

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

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

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

  • ปลายทางเป้าหมาย
  • นโยบายคำขอราคาเสนอบริการ

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

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

  1. ใน Edge UI ให้เลือกพร็อกซี 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 ในนโยบาย ServiceCall ของพร็อกซี API

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

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

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

องค์ประกอบระยะหมดเวลา

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

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

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

        <Timeout>120000</Timeout>
    

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

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

    ตัวอย่างการกำหนดค่านโยบายคำขอราคาเสนอบริการโดยใช้ 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 ในนโยบาย Serviceข้อความไฮไลต์ โดยใช้เมธอด พร็อพเพอร์ตี้ io.timeout.millis ให้ทำดังนี้

  1. ใน Edge UI ให้เลือกพร็อกซี API ที่ต้องการกำหนดค่า ค่าระยะหมดเวลา I/O ใหม่สำหรับนโยบาย Serviceข้อความไฮไลต์
  2. เลือกนโยบาย Serviceข้อความไฮไลต์ที่คุณต้องการแก้ไข
  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

    ตัวอย่างการกำหนดค่านโยบายคำขอราคาเสนอบริการโดยใช้ 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 เป็นมิลลิวินาทีในคอมโพเนนต์ Message Processor โดยใช้โทเค็นตามไวยากรณ์ที่อธิบายไว้ใน วิธีกำหนดค่า 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. หากคุณมีโปรแกรมประมวลผลข้อความมากกว่า 1 ระบบ ให้ทำขั้นตอนข้างต้นซ้ำในส่วน "ข้อความ" ทั้งหมด ผู้ประมวลผลข้อมูล

กำลังตรวจสอบการหมดเวลา I/O บน Message Processor

ส่วนนี้จะอธิบายวิธีตรวจสอบว่าการหมดเวลา I/O ได้รับการแก้ไขเรียบร้อยแล้วใน ตัวประมวลผลข้อความ

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

  1. ค้นหาคุณสมบัติ 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 ใหม่ให้กับตัวประมวลผลข้อความสำเร็จ การตั้งค่าข้างต้น จะแสดงค่าใหม่ในไฟล์ 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 วินาทีในโปรแกรมประมวลผลข้อความ

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

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

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