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

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

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

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

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

เอกสารนี้อธิบายแนวทางปฏิบัติแนะนำสำหรับการกำหนดค่าการหมดเวลา 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 ใน Message Processor เฉพาะเมื่อคุณมั่นใจอย่างยิ่ง ว่าจำเป็นต้องใช้ค่าการหมดเวลา I/O ใหม่หรือค่าดังกล่าวใช้ได้กับพร็อกซี API ทั้งหมดที่ทำงานใน Message Processor

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

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

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

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

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

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

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

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

    กำหนดค่าการหมดเวลาในไคลเอ็นต์ จากนั้นในเราเตอร์ จากนั้นใน Message Processor แล้วจึงกำหนดค่าในเซิร์ฟเวอร์แบ็กเอนด์

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

    กำหนดค่าการหมดเวลาในไคลเอ็นต์ที่ 60 วินาที จากนั้นเราเตอร์ที่ 57 วินาที จากนั้น Message Processor ที่ 55 วินาที จากนั้นเซิร์ฟเวอร์แบ็กเอนด์ที่ 52 วินาที

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

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

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

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

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

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

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

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

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

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