ฉันออกแบบแอปพลิเคชันด้วยบริการไมโครและฉันไม่แน่ใจเกี่ยวกับกลไกที่ดีที่สุดที่จะใช้ในการรวบรวมข้อมูลจากบริการที่หลากหลาย
ฉันเชื่อว่ามีสองตัวเลือก:
- บูรณาการกลไกการสื่อสาร 'บริการระหว่าง' ที่ช่วยให้บริการที่จะพูดคุยโดยตรง API เกตเวย์จะเรียกใช้บริการส่วนบุคคลซึ่งจะเรียกบริการอื่น ๆ เพื่อรวบรวมข้อมูลก่อนส่งคืนการตอบกลับแบบรวมไปยัง API เกตเวย์ จากนั้น API จะส่งคืนการตอบกลับไปยังผู้โทร (สิ่งนี้จะต้องเป็นการโทรแบบซิงโครนัสเมื่อการเรียกใช้บริการ serviceB ต้องการการตอบสนองจาก serviceA. IE แยกคนและบริการที่อยู่)
- ให้ API เกตเวย์โทรไปยังแต่ละบริการโดยตรงและรวบรวมข้อมูลภายใน API ก่อนที่จะตอบกลับ
ฉันเอนตัวไปสู่ทางเลือกที่สองเนื่องจากการให้บริการพูดคุยกันจะแนะนำการมีเพศสัมพันธ์ซึ่งในกรณีนี้ฉันก็อาจสร้างแอพพลิเคชั่นแบบเสาหิน อย่างไรก็ตามมีข้อเสียร้ายแรงบางประการที่ฉันสามารถคิดได้จากส่วนหัวของฉันด้วยตัวเลือกนี้:
การให้ API ดำเนินการเรียกหลายครั้งไปยังหลายบริการจะช่วยเพิ่มภาระให้กับเซิร์ฟเวอร์ API โดยเฉพาะอย่างยิ่งเมื่อการโทรบางส่วนกำลังปิดกั้น
วิธีนี้จะหมายความว่า API จะต้อง 'ตระหนักถึง' สิ่งที่แอปพลิเคชันพยายามทำ (IE Logic จะต้องถูกตั้งโปรแกรมไว้ใน API เพื่อจัดการกับการเรียกใช้บริการในทางกลับกันและรวมข้อมูลแล้ว) ทำหน้าที่เป็น 'ปลายทาง' โง่สำหรับบริการไมโคร
ฉันต้องการทราบว่าแนวทางมาตรฐานสำหรับปัญหานี้คืออะไรและหากมีตัวเลือกที่สามที่ฉันพลาด