0
Cho mình hỏi về việc thay đổi data trong hệ thống microservice
Mình cho ví dụ cụ thể như hệ thống ngân hàng. Người dùng ở ATM rút tiền, hệ thống backend yêu cầu phải đáp ứng nhanh, nên sẽ chạy theo mô hình client-server asynchronous
- Người dùng ra lệnh rút tiền, lệnh được gửi về 1 service trong backend
- Service đó sẽ kiểm tra tính hợp lệ, nếu hợp lệ thì service gửi 1 message cho service khác xử lý tiếp, cụ thể là yêu cầu update DB
- Và service đó return kết quả thành công về client (ATM) và không cần chờ kết quả của service kia
- Như vậy ngay lúc đó, data ở DB hoàn toàn chưa update
- Nếu sau đó người dùng query lại số dư, thì không thể query trực tiếp từ DB ra được (do chưa update)
Có khả năng mình cần cache cho 1 user đã rút tiền ở trên hay không ? Nghĩa là service đầu tiên sẽ add/update vô cache. Sau đó nếu người dùng query lại số dư, thì sẽ đọc từ cache thay vì đọc từ DB ra ?
Thêm một bình luận