Saga Pattern คือรูปแบบการจัดการ Transaction แบบกระจาย (Distributed Transaction) ในระบบ Microservices เพื่อรักษาความสอดคล้องของข้อมูล (Data Consistency) โดยแบ่ง Transaction ใหญ่เป็นขั้นตอนย่อยๆ (Local Transactions) ที่ทำงานต่อเนื่องกัน หากขั้นตอนใดล้มเหลว ระบบจะทำการย้อนกลับ (Compensating Transaction) เพื่อแก้ไขข้อมูลให้กลับสู่สถานะเดิม
แนวทางหลักในการทำ Saga Pattern:
- Choreography (การประสานงานแบบไร้ตัวกลาง): แต่ละ Microservice ทำงานของตัวเองเสร็จแล้วจะ Publish Event ผ่าน Message Broker เพื่อบอก Service ตัวถัดไปให้ทำต่อ โดยไม่มีศูนย์กลางควบคุม
- Orchestration (การบริหารจัดการแบบมีตัวกลาง): มีตัวกลาง (Orchestrator) ทำหน้าที่สั่งการและจัดการ Workflow ของแต่ละ Microservice ว่าต้องทำอะไรต่อ หรือต้องย้อนกลับเมื่อเกิดข้อผิดพลาด
ประโยชน์ของการใช้ Saga Pattern:
- แก้ปัญหาการทำ Distributed Transaction ใน Microservices ที่แต่ละ Service แยกฐานข้อมูลกัน
- ช่วยให้ระบบยังคงความสอดคล้องของข้อมูลในเชิงธุรกิจได้ (Eventual Consistency)
- เพิ่มความยืดหยุ่นในการจัดการข้อผิดพลาด (Failure Management)
โดยทั่วไปมักใช้ร่วมกับเทคโนโลยีอย่าง Apache Kafka เป็น Message Broker
saga pattern สำหรับ microserivce ที่มี database แยกกัน
Reviewed by Mr.Boonchai
on
กุมภาพันธ์ 11, 2569
Rating:
ไม่มีความคิดเห็น:
Thank you