พัฒนา web application ด้วย Java

saga pattern สำหรับ microserivce ที่มี database แยกกัน

 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 แยกกัน saga pattern สำหรับ microserivce ที่มี database แยกกัน Reviewed by Mr.Boonchai on กุมภาพันธ์ 11, 2569 Rating: 5

ไม่มีความคิดเห็น:

Thank you

ขับเคลื่อนโดย Blogger.