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

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

คำขอ 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 ทั้งหมดที่แสดงผลโดยผู้ประมวลผลข้อความ

    กำหนดค่า (แก้ไข) การหมดเวลา 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. กำหนดค่าการหมดเวลาในแต่ละคอมโพเนนต์ รวมถึงคอมโพเนนต์กลางตามลำดับต่อไปนี้

    กำหนดค่าการหมดเวลาบนไคลเอ็นต์ ต่อด้วย Intermediate Component 1 แล้วก็เราเตอร์ ต่อกับ Message Processor ตามด้วย Intermediate Component 2 ตามด้วย Backend Server

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

    กำหนดค่าการหมดเวลาสำหรับไคลเอ็นต์ที่ 63 วินาที แล้ว Intermediate Component 1 ที่ 60 วินาที , เราเตอร์ที่เวลา 57 วินาที , Message Processor st 55 วินาที จากนั้น ตามด้วย Intermediate Component 2 ที่ 52 วินาที จากนั้นที่เหลือ Backend Server ที่ 59 วินาที