เกตเวย์ API เทียบกับพร็อกซีย้อนกลับ


109

เพื่อที่จะจัดการกับสถาปัตยกรรม MICROSERVICE ก็มักจะใช้ควบคู่ไปกับพร็อกซี (Reverse เช่น Nginx หรือ Apache httpd) และสำหรับการตัดความกังวลการดำเนินการข้าม รูปแบบเกตเวย์ API ถูกนำมาใช้ บางครั้ง Reverse proxy ทำงานกับเกตเวย์ API
จะเป็นการดีที่จะเห็นความแตกต่างที่ชัดเจนระหว่างสองแนวทางนี้ ดูเหมือนว่าประโยชน์ที่เป็นไปได้ของการใช้งานเกตเวย์ API คือการเรียกใช้ไมโครเซอร์วิสหลาย ๆ ตัวและรวบรวมผลลัพธ์ ความรับผิดชอบอื่น ๆ ทั้งหมดของเกตเวย์ API สามารถใช้งานได้โดยใช้ Reverse Proxy เช่น:

  • การพิสูจน์ตัวตน (สามารถทำได้โดยใช้สคริปต์ nginx LUA)
  • ความปลอดภัยในการขนส่ง ตัวมันเองงาน Reverse Proxy;
  • โหลดบาลานซ์
  • ....

จากนี้มีคำถามหลายข้อ:

  1. มันสมเหตุสมผลหรือไม่ที่จะใช้เกตเวย์ API และพร็อกซีย้อนกลับพร้อมกัน (ดังตัวอย่างคำขอ -> เกตเวย์ Api-> พร็อกซีย้อนกลับ (nginx) -> คอนกรีต mictoservice) ในกรณีใดบ้าง?
  2. อะไรคือความแตกต่างอื่น ๆ ที่สามารถใช้งานได้โดยใช้เกตเวย์ API และไม่สามารถใช้งานได้โดย Reverse proxy และในทางกลับกัน?

คำตอบ:


85

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

สำหรับคำถามของคุณไม่ใช่เรื่องแปลกที่จะเห็นทั้งสองอย่างที่ใช้ร่วมกันโดยที่เกตเวย์ API ถือว่าเป็นระดับแอปพลิเคชันที่อยู่ด้านหลังพร็อกซีย้อนกลับสำหรับการทำโหลดบาลานซ์และการตรวจสอบความสมบูรณ์ ตัวอย่างเช่นสถาปัตยกรรมแซนวิช WAF ที่ Web Application Firewall / API Gateway ของคุณถูกประกบด้วยระดับพร็อกซีย้อนกลับตัวหนึ่งสำหรับ WAF เองและอีกอันสำหรับไมโครเซอร์วิสแต่ละตัวที่พูดถึง

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


แก้ไขฉันถ้าฉันผิด แต่ฉันสามารถใช้ทั้งสองอย่างในระบบนิเวศเดียวกันได้ การใช้เกตเวย์ API ช่วยในการปรับแต่งการเปลี่ยนแปลงแบบไดนามิกและคงที่ที่เพิ่มเข้าไปในการตรวจสอบแดชบอร์ดและข้อ จำกัด ด้านความปลอดภัยซึ่งการใช้ reverse proxy เช่น nginx อาจมีประสิทธิภาพมากกว่าในการให้บริการโดเมนย่อยแบบคงที่และแบบคงที่ซึ่งให้โหลดบาลานซ์
aelkz

28

ฉันเชื่อว่า API Gateway เป็นพร็อกซีย้อนกลับที่สามารถกำหนดค่าแบบไดนามิกผ่าน API และอาจผ่าน UI ในขณะที่พร็อกซีย้อนกลับแบบเดิม (เช่น Nginx, HAProxy หรือ Apache) ได้รับการกำหนดค่าผ่านไฟล์กำหนดค่าและต้องเริ่มต้นใหม่เมื่อมีการเปลี่ยนแปลงการกำหนดค่า ดังนั้นควรใช้ API Gateway เมื่อกฎการกำหนดเส้นทางหรือการกำหนดค่าอื่น ๆ มักมีการเปลี่ยนแปลง สำหรับคำถามของคุณ:

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

นอกจากนี้ API Gateway มักมีให้ในรูปแบบของ SAAS เช่นApigeeหรือTykเป็นต้น

นี่คือบทช่วยสอนของฉันเกี่ยวกับวิธีสร้างเกตเวย์ API อย่างง่ายด้วย Node.js https://memz.co/api-gateway-microservices-docker-node-js/

หวังว่าจะช่วยได้


ขอบคุณสำหรับคำแนะนำของ SAAS
Zenuka

4
มีโอกาสใดบ้างที่คุณจะรู้ว่ามีสถานที่อื่นสำหรับข้อมูลของสิ่งที่อยู่ในลิงก์ memz.co นั้นหรือไม่? มันตายแล้ว.
New Alexandria

0

API เกตเวย์มักจะทำงานเป็นโครงสร้าง L7

API เกตเวย์มีฟังก์ชันเพิ่มเติมเมื่อเทียบกับพร็อกซีย้อนกลับธรรมดา หากคุณพิจารณาพอร์ทัลบางส่วนที่มีให้:

  • API Lifecycle Management แบบเต็มรวมถึงเอกสารประกอบ
  • พอร์ทัลที่สามารถใช้เป็นแหล่งที่มาของความจริงสำหรับแอปพลิเคชันไคลเอนต์ต่างๆและที่ที่คุณสามารถให้การกำกับดูแลลูกค้าการ จำกัด อัตรา ฯลฯ
  • การกำหนดเส้นทางไปยังเวอร์ชันต่างๆของ API รวมถึงเวอร์ชันคานารี / เบต้า
  • ตรวจจับรูปแบบการใช้งานลงทะเบียนแอพดึงข้อมูลรับรองไคลเอนต์เป็นต้น

อย่างไรก็ตามด้วยการถือกำเนิดของตาข่ายบริการเช่น Istio กงสุลจำนวนมากของฟังก์ชันการทำงานของ API เกตเวย์จะถูกย่อยด้วยตาข่าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.