Yêu cầu khoảng 1 giờ trước 5 0 0
  • 5 0 0
0

Cho mình hỏi về việc thay đổi data trong hệ thống microservice

Chia sẻ
  • 5 0 0

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 ?

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí