Trong kiến trúc Microservices, làm thế nào để đảm bảo tính nhất quán của dữ liệu giữa các dịch vụ khác nhau khi không thể sử dụng giao dịch ACID truyền thống?
Khi không thể sử dụng giao dịch ACID trên nhiều cơ sở dữ liệu, chúng ta áp dụng mô hình Saga Pattern để quản lý tính nhất quán. Saga là một chuỗi các giao dịch cục bộ (local transactions) được thực hiện tuần tự. Mỗi bước thực hiện thành công sẽ kích hoạt bước tiếp theo thông qua Event-driven architecture. Nếu một bước thất bại, hệ thống sẽ thực hiện các giao dịch bù (compensating transactions) để hoàn tác các thay đổi đã thực hiện trước đó nhằm đưa hệ thống về trạng thái nhất quán. Có hai cách tiếp cận chính: 1. Choreography: Các dịch vụ tự trao đổi sự kiện với nhau thông qua Message Broker. 2. Orchestration: Một dịch vụ trung tâm (Orchestrator) điều phối toàn bộ luồng giao dịch. Đối với Junior, cần hiểu rõ rằng tính nhất quán ở đây là Eventual Consistency (nhất quán cuối cùng) thay vì Strong Consistency.
Khóa học System Design & High Scalability
Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.
Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)
Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?
Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.
Kiểm Tra CV Chuẩn ATS Miễn Phí
Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.
Câu hỏi system design liên quan cùng chủ đề
- Khi thiết kế một hệ thống web hướng tới người dùng ở nhiều khu vực địa lý khác nhau, anh chị sẽ áp dụng mô hình Content Delivery Network kết hợp với cơ chế Browser Caching như thế nào để tối ưu hóa thời gian tải trang ban đầu? Junior
- Trong quá trình xây dựng các ứng dụng web hiện đại, tại sao chúng ta cần sử dụng Reverse Proxy như Nginx trước các Application Server, và nó giúp giải quyết những bài toán cốt lõi nào về bảo mật cũng như hiệu năng? Junior
- Khi thiết kế một hệ thống đăng nhập đơn giản, anh chị sẽ lựa chọn giữa phương pháp xác thực dựa trên Stateful Session và Stateless JSON Web Token trong những kịch bản nào, và cần lưu ý gì về bảo mật? Junior
- Trong quá trình tối ưu hóa cơ sở dữ liệu quan hệ cho các hệ thống có lưu lượng đọc lớn, tại sao Database Index lại quan trọng và những rủi ro nào cần tránh khi lạm dụng đánh index? Junior
- Khi hệ thống của anh chị phải đối mặt với các đợt lưu lượng truy cập đột biến (Traffic Spikes), giải pháp Auto-Scaling và Message Queue đóng vai trò như thế nào để bảo vệ hệ thống khỏi tình trạng quá tải sập nguồn? Junior


