Antipattern: ปล่อยให้พร็อกซี NodeJS API ที่ไม่ได้ใช้งานใช้งานได้

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

ฟีเจอร์หนึ่งที่โดดเด่นและมีประโยชน์ของ Apigee Edge คือความสามารถในการรวมแอปพลิเคชัน NodeJS ไว้ใน API Proxy ซึ่งช่วยให้นักพัฒนาแอปสร้างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ขับเคลื่อนด้วยเหตุการณ์โดยใช้ Edge ได้

รูปแบบที่ไม่แนะนำ

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

ในกรณีของ API Proxy ของ NodeJS จะมีผลกระทบเพิ่มเติมดังนี้

แพลตฟอร์มจะเปิดตัว "แอป Node" สำหรับ API Proxy ของ NodeJS แต่ละรายการที่ทำให้ใช้งานได้ แอป Node มีลักษณะคล้ายกับอินสแตนซ์เซิร์ฟเวอร์โหนดแบบสแตนด์อโลนในกระบวนการ JVM ของ Message Processor

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

พร็อกซีที่ใช้ พร็อกซีที่ไม่ได้ใช้
# พร็อกซี # สภาพแวดล้อมที่ทำให้ใช้งานได้ # nodeapps ที่เปิดตัว # พร็อกซี # สภาพแวดล้อมที่ทำให้ใช้งานได้ # แอป Node ที่เปิดตัว
10 dev, test, prod (3) 10x3=30 12 dev, test, prod (3) 12x3=36

ในภาพประกอบด้านบน ระบบจะเปิดตัว nodeapps ที่ไม่ได้ใช้ 36 รายการ ซึ่งใช้หน่วยความจำของระบบและส่งผลเสียต่อเวลาเริ่มต้นของกระบวนการ

ผลกระทบ

  • การใช้หน่วยความจำสูงและผลกระทบแบบลูกโซ่ต่อความสามารถของแอปพลิเคชันในการประมวลผลคำขอเพิ่มเติม
  • มีแนวโน้มที่จะส่งผลต่อประสิทธิภาพของ API Proxy ที่ให้บริการการเข้าชมจริง

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

  • ยกเลิกการทำให้ API Proxy ที่ไม่ได้ใช้ใช้งานได้
  • ใช้แดชบอร์ดประสิทธิภาพของ Analytics Proxy เพื่อดูว่าพร็อกซีใดไม่ได้ให้บริการ การเข้าชม และยกเลิกการทำให้พร็อกซีที่คุณไม่ต้องการใช้งานได้

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