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