แนวทางปฏิบัติที่ดีที่สุดในการกําหนดค่าระยะหมดเวลา I/O

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

คําขอ API ที่แอปพลิเคชันไคลเอ็นต์สร้างขึ้นจะส่งผ่านคอมโพเนนต์ต่างๆ ใน Apigee Edge ก่อนถึงบริการแบ็กเอนด์ แอปพลิเคชันไคลเอ็นต์ส่วนใหญ่คาดหวังว่าจะได้รับคำตอบสำหรับคำขอเหล่านี้โดยเร็วที่สุด

ระบบจะตั้งค่าเวลาหมดอายุของ I/O ในคอมโพเนนต์แต่ละรายการที่ส่งผ่านคําขอ API เพื่อให้ได้รับการตอบกลับอย่างทันท่วงที หากคอมโพเนนต์ใดในขั้นตอนใช้เวลานานกว่าคอมโพเนนต์ก่อนหน้า คอมโพเนนต์ก่อนหน้าจะหมดเวลาและตอบกลับด้วยข้อผิดพลาด 504 เกี่ยวกับเวลาหมดของเกตเวย์

ขณะกำหนดค่าการหมดเวลา คุณควรกำหนดค่าในแต่ละคอมโพเนนต์ด้วยความระมัดระวังสูงสุด ไม่เช่นนั้นอาจทำให้เกิด ข้อผิดพลาด 504 เกี่ยวกับระยะหมดเวลาของเกตเวย์

เอกสารนี้อธิบายแนวทางปฏิบัติแนะนำสำหรับการกำหนดค่าการหมดเวลาของ I/O ในคอมโพเนนต์ต่างๆ ที่ส่งคำขอ API ใน Apigee Edge

แนวทางปฏิบัติแนะนำสำหรับการกำหนดค่าการหมดเวลาของ I/O

ลองทำตามแนวทางปฏิบัติแนะนำต่อไปนี้เมื่อกำหนดค่าการหมดเวลา I/O

  • คอมโพเนนต์แรก: ใช้การหมดเวลาสูงสุดในคอมโพเนนต์แรกในขั้นตอนการส่งคำขอ API เสมอ ซึ่งเป็นแอปพลิเคชันไคลเอ็นต์ใน Apigee Edge
  • คอมโพเนนต์สุดท้าย: ใช้การหมดเวลาต่ำสุดในคอมโพเนนต์สุดท้ายในขั้นตอนการส่งคำขอ API เสมอ ซึ่งเป็นบริการแบ็กเอนด์ใน Apigee Edge
  • ระหว่างคอมโพเนนต์: ตรวจสอบว่าค่าระยะหมดเวลาที่กําหนดค่าไว้ในคอมโพเนนต์แต่ละรายการระหว่างคอมโพเนนต์แรกกับคอมโพเนนต์สุดท้ายในขั้นตอนมีความแตกต่างกันอย่างน้อย 2-3 วินาที
  • เราเตอร์: แนวทางปฏิบัติแนะนำคือกำหนดค่า (แก้ไข) ค่าการหมดเวลาของ I/O สำหรับโฮสต์เสมือนที่เฉพาะเจาะจงแทนการกำหนดค่าในเราเตอร์ วิธีนี้ช่วยให้มั่นใจได้ว่าค่าการหมดเวลาใหม่จะส่งผลต่อพร็อกซี API ที่ใช้โฮสต์เสมือนที่เฉพาะเจาะจงเท่านั้น และไม่ใช่พร็อกซี API ทั้งหมดที่แสดงโดยเราเตอร์

    กำหนดค่า (แก้ไข) ระยะหมดเวลาของ I/O ในเราเตอร์เฉพาะในกรณีที่คุณแน่ใจอย่างยิ่งว่าต้องใช้หรือค่าระยะหมดเวลาของ I/O ใหม่มีผลกับพร็อกซี API ทั้งหมดที่ทำงานอยู่บนเราเตอร์

  • โปรแกรมประมวลผลข้อความ: แนวทางปฏิบัติแนะนำคือให้กําหนดค่า (แก้ไข) ค่าการหมดเวลา I/O สําหรับพร็อกซี API ที่เฉพาะเจาะจงแทนที่จะกําหนดค่าในโปรแกรมประมวลผลข้อความ วิธีนี้ช่วยให้มั่นใจได้ว่าค่าการหมดเวลาใหม่จะมีผลกับพร็อกซี API ที่เฉพาะเจาะจงเท่านั้น และจะไม่ส่งผลต่อพร็อกซี API ทั้งหมดที่ Message Processor แสดง

    กำหนดค่า (แก้ไข) การหมดเวลาของ I/O ในโปรแกรมประมวลผลข้อความเฉพาะในกรณีที่คุณแน่ใจอย่างยิ่งว่าต้องใช้หรือค่าการหมดเวลาของ I/O ใหม่มีผลกับพร็อกซี API ทั้งหมดที่ทำงานในโปรแกรมประมวลผลข้อความ

ตัวอย่างสถานการณ์

สถานการณ์ในส่วนนี้จะช่วยให้คุณเข้าใจวิธีตั้งค่าการหมดเวลา I/O อย่างถูกต้อง

สถานการณ์ 1: คำขอไปยัง Apigee Edge จากแอปพลิเคชันไคลเอ็นต์โดยตรง

ส่วนนี้จะอธิบายแนวทางปฏิบัติแนะนำที่ควรทำขณะตั้งค่าค่าการหมดเวลาในการตั้งค่า Apigee Edge ที่ไม่มีคอมโพเนนต์กลางระหว่างแอปพลิเคชันไคลเอ็นต์กับ Apigee Edge และระหว่าง Apigee Edge กับเซิร์ฟเวอร์แบ็กเอนด์

ตัวอย่างการตั้งค่า Apigee ที่ไม่มีคอมโพเนนต์กลาง

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

หากตั้งค่า Apigee Edge ตามที่แสดงในแผนภาพด้านบนโดยไม่มีคอมโพเนนต์กลาง ให้ใช้แนวทางปฏิบัติแนะนำต่อไปนี้

  1. แอปพลิเคชันไคลเอ็นต์เป็นคอมโพเนนต์แรกในขั้นตอนนี้ ควรตั้งค่าการหมดเวลาที่สูงที่สุดในไคลเอ็นต์
  2. เซิร์ฟเวอร์แบ็กเอนด์เป็นคอมโพเนนต์สุดท้ายในขั้นตอนนี้ คุณควรตั้งค่าระยะหมดเวลาที่ต่ำที่สุดในเซิร์ฟเวอร์แบ็กเอนด์
  3. กำหนดค่าระยะหมดเวลาในคอมโพเนนต์แต่ละรายการตามลำดับต่อไปนี้

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

    ตัวอย่างต่อไปนี้แสดงค่าการหมดเวลาที่กําหนดในคอมโพเนนต์ต่างๆ ตามหลักเกณฑ์ที่ระบุไว้ข้างต้นเพื่อหลีกเลี่ยงปัญหา

    กําหนดค่าระยะหมดเวลาในไคลเอ็นต์เป็น 60 วินาที จากนั้นกำหนดค่าระยะหมดเวลาในเราเตอร์เป็น 57 วินาที จากนั้นกำหนดค่าระยะหมดเวลาในโปรแกรมประมวลผลข้อความเป็น 55 วินาที จากนั้นกำหนดค่าระยะหมดเวลาในเซิร์ฟเวอร์แบ็กเอนด์เป็น 52 วินาที

สถานการณ์ที่ 2: คำขอไปยัง Apigee Edge จากแอปพลิเคชันไคลเอ็นต์ผ่านคอมโพเนนต์กลาง

ส่วนนี้จะอธิบายแนวทางปฏิบัติแนะนำที่ควรทำขณะตั้งค่าค่าการหมดเวลาในการตั้งค่า Apigee Edge ซึ่งมีคอมโพเนนต์กลางอย่างน้อย 1 รายการระหว่างแอปพลิเคชันไคลเอ็นต์กับ Apigee Edge และระหว่าง Apigee Edge กับเซิร์ฟเวอร์แบ็กเอนด์

คอมโพเนนต์กลางอาจเป็นตัวจัดสรรภาระงาน เครือข่ายนำส่งข้อมูล (CDN) NGINX และอื่นๆ

ตัวอย่างการตั้งค่า Apigee ที่มีคอมโพเนนต์กลาง 1 รายการระหว่างไคลเอ็นต์กับ Apigee Edge และระหว่าง Apigee Edge กับเซิร์ฟเวอร์แบ็กเอนด์

ขั้นตอนที่เริ่มต้นจากไคลเอ็นต์ไปยังคอมโพเนนต์กลาง 1 จากนั้นไปยังเราเตอร์ จากนั้นไปยังโปรแกรมประมวลผลข้อความ จากนั้นไปยังคอมโพเนนต์กลาง 2 และไปยังเซิร์ฟเวอร์แบ็กเอนด์

หากตั้งค่า Apigee Edge ตามที่แสดงในแผนภาพด้านบน โดยมีคอมโพเนนต์ระดับกลางอย่างน้อย 1 รายการ ให้ใช้แนวทางปฏิบัติแนะนำต่อไปนี้

  1. แอปพลิเคชันไคลเอ็นต์เป็นคอมโพเนนต์แรกในขั้นตอนนี้ ควรตั้งค่าการหมดเวลา สูงสุดในไคลเอ็นต์
  2. เซิร์ฟเวอร์แบ็กเอนด์เป็นคอมโพเนนต์สุดท้ายในขั้นตอนนี้ คุณควรตั้งค่าระยะหมดเวลา ต่ำสุดในเซิร์ฟเวอร์แบ็กเอนด์
  3. กำหนดค่าการหมดเวลาในคอมโพเนนต์แต่ละรายการ รวมถึงคอมโพเนนต์กลางตามลำดับต่อไปนี้

    กําหนดค่าการหมดเวลาในไคลเอ็นต์ จากนั้นกําหนดค่าคอมโพเนนต์ระดับกลาง 1 จากนั้นกําหนดค่าเราเตอร์ จากนั้นกําหนดค่าโปรแกรมประมวลผลข้อความ จากนั้นกําหนดค่าคอมโพเนนต์ระดับกลาง 2 จากนั้นกําหนดค่าเซิร์ฟเวอร์แบ็กเอนด์

    ตัวอย่างต่อไปนี้แสดงค่าการหมดเวลาที่กําหนดในคอมโพเนนต์ต่างๆ ตามหลักเกณฑ์ที่ระบุไว้ข้างต้นเพื่อหลีกเลี่ยงปัญหา

    กําหนดค่าการหมดเวลาในไคลเอ็นต์เป็น 63 วินาที จากนั้นกําหนดค่าคอมโพเนนต์ระดับกลาง 1 เป็น 60 วินาที จากนั้นกําหนดค่าเราเตอร์เป็น 57 วินาที จากนั้นกําหนดค่าโปรแกรมประมวลผลข้อความเป็น 55 วินาที จากนั้นกําหนดค่าคอมโพเนนต์ระดับกลาง 2 เป็น 52 วินาที จากนั้นกําหนดค่าเซิร์ฟเวอร์แบ็กเอนด์เป็น 59 วินาที