Antipattern: เข้าถึงเพย์โหลดคำขอ/การตอบกลับเมื่อเปิดใช้สตรีมมิง

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

ลักษณะการทำงานเริ่มต้นใน Edge คือระบบจะจัดเก็บเปย์โหลดคำขอ HTTP และการตอบกลับไว้ในบัฟเฟอร์ในหน่วยความจำก่อนที่จะประมวลผลโดยนโยบายในพร็อกซี API

หากเปิดใช้สตรีมมิง ระบบจะสตรีมเพย์โหลดคำขอและการตอบกลับโดยไม่มีการแก้ไขแอปไคลเอ็นต์ (สำหรับการตอบกลับ) และปลายทางเป้าหมาย (สำหรับคำขอ) สตรีมมิงมีประโยชน์โดยเฉพาะอย่างยิ่งหากแอปพลิเคชันยอมรับหรือส่งเพย์โหลดขนาดใหญ่ หรือหากมีแอปพลิเคชันที่ส่งข้อมูลเป็นส่วนๆ เมื่อเวลาผ่านไป

ลายป้องกัน

การเข้าถึงเพย์โหลดคำขอ/การตอบกลับโดยเปิดใช้สตรีมมิงจะทำให้ Edge กลับไปที่โหมดบัฟเฟอร์เริ่มต้น

ภาพที่ 1: การเข้าถึงเพย์โหลดคำขอ/การตอบกลับด้วยการเปิดใช้สตรีมมิง

ภาพด้านบนแสดงให้เห็นว่าเรากำลังพยายามดึงตัวแปรจากเพย์โหลดคำขอและแปลงเพย์โหลดการตอบสนอง JSON เป็น XML โดยใช้นโยบาย JSONToXML ซึ่งจะปิดใช้สตรีมมิงใน Edge

มีอิทธิพล

  • ระบบจะปิดใช้สตรีมมิงซึ่งอาจส่งผลให้เกิดความล่าช้าในการประมวลผลข้อมูลเพิ่มขึ้น
  • การใช้งานหน่วยความจำฮีพที่เพิ่มขึ้นหรือข้อผิดพลาด OutOfMemory อาจพบได้ในเครื่องมือประมวลผลข้อความ เนื่องจากการใช้บัฟเฟอร์ในหน่วยความจำ โดยเฉพาะอย่างยิ่งหากเรามีเพย์โหลดคำขอ/การตอบกลับปริมาณมาก

แนวทางปฏิบัติแนะนำ

  • อย่าเข้าถึงเพย์โหลดคำขอ/การตอบกลับเมื่อเปิดใช้สตรีมมิง

อ่านเพิ่มเติม