Mẫu Saga là gì
Giao dịch phân tán thông qua chuỗi sự kiện
Mẫu Saga là mẫu để quản lý giao dịch phân tán thông qua chuỗi các giao dịch cục bộ với các hành động bù trừ khi thất bại.
Vấn đề
- Microservices có cơ sở dữ liệu riêng
- Giao dịch ACID cổ điển là không thể
- Cần tính nhất quán giữa các dịch vụ
Các loại Saga
- Biên đạo — dịch vụ trao đổi sự kiện
- Điều phối — điều phối viên trung tâm quản lý
Biên đạo
- Dịch vụ đăng ký sự kiện của nhau
- Mỗi dịch vụ công bố kết quả
- Không có điểm lỗi đơn
- Khó theo dõi trạng thái hơn
Điều phối
- Điều phối viên Saga quản lý luồng
- Gọi dịch vụ tuần tự
- Dễ theo dõi và gỡ lỗi hơn
- Rủi ro điểm lỗi đơn
Giao dịch bù trừ
- Hoàn tác các bước đã hoàn thành
- Phải là idempotent
- Hoàn tác ngữ nghĩa (không phải rollback)
- Ví dụ: hoàn tiền thay vì hủy