Antipattern: อนุญาตแบ็กเอนด์ที่ช้า

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

ระบบแบ็กเอนด์จะเรียกใช้บริการที่ API Proxies เข้าถึง กล่าวคือ พร็อกซี API เป็นเหตุผลพื้นฐานที่ทำให้เกิด API และเลเยอร์พร็อกซีการจัดการ API

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

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

ประสิทธิภาพของคําขอ API ที่กําหนดเส้นทางผ่าน Edge จึงขึ้นอยู่กับทั้ง Edge และระบบแบ็กเอนด์ ในลักษณะการทำงานที่ไม่พึงประสงค์นี้ เราจะมุ่งเน้นที่ผลกระทบต่อคำขอ API เนื่องจากระบบแบ็กเอนด์มีประสิทธิภาพต่ำ

รูปแบบที่ไม่ถูกต้อง

มาดูกรณีที่แบ็กเอนด์มีปัญหากัน กรณีต่างๆ ที่เป็นไปได้มีดังนี้

  • แบ็กเอนด์มีขนาดเล็กเกินไป
  • แบ็กเอนด์ทำงานช้า
  • แบ็กเอนด์มีขนาดเล็กเกินไป

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

    หลายครั้งระบบแบ็กเอนด์ไม่พร้อมรับดีมานด์ที่เพิ่มขึ้นนี้ในบริการของตน และด้วยเหตุนี้จึงมีขนาดไม่เพียงพอหรือไม่ได้รับการปรับให้ตอบสนองได้อย่างมีประสิทธิภาพ

    ปัญหาของแบ็กเอนด์ที่ "มีขนาดไม่เพียงพอ" คือหากมีคำขอ API เพิ่มขึ้นอย่างรวดเร็ว ก็จะทำให้เกิดปัญหากับทรัพยากร เช่น CPU, ภาระงาน และหน่วยความจำในระบบแบ็กเอนด์ ซึ่งท้ายที่สุดจะทำให้คําขอ API ล้มเหลว

    แบ็กเอนด์ทำงานช้า

    ปัญหาของแบ็กเอนด์ที่ปรับไม่ถูกต้องคือจะตอบสนองคำขอที่เข้ามาช้ามาก ซึ่งส่งผลให้เกิดความล่าช้า การหมดเวลาก่อนกำหนด และประสบการณ์ของลูกค้าที่ลดลง

    แพลตฟอร์ม Edge มีตัวเลือกการปรับแต่งบางอย่างเพื่อหลีกเลี่ยงและจัดการแบ็กเอนด์ที่ช้า แต่ตัวเลือกเหล่านี้มีข้อจํากัด

    ผลกระทบ

    • ในกรณีที่แบ็กเอนด์มีขนาดใหญ่ไม่เพียงพอ การเพิ่มขึ้นของการเข้าชมอาจทําให้คําขอไม่สําเร็จ
    • ในกรณีที่แบ็กเอนด์ทำงานช้า เวลาในการตอบสนองของคำขอจะเพิ่มขึ้น

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

    • ใช้การแคชเพื่อจัดเก็บคำตอบเพื่อปรับปรุงเวลาในการตอบกลับของ API และลดภาระงานในเซิร์ฟเวอร์แบ็กเอนด์
    • แก้ปัญหาพื้นฐานในเซิร์ฟเวอร์แบ็กเอนด์ที่ทำงานช้า

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