Avatar
1
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
cách đồng bộ với nhiều CSDL
trong mô hình Microservice, cái khó nhất đối với em là việc đồng bộ các CSDL trong hệ thống sao cho chúng nó phải consistent. Consistent em muốn nói là : Thông thường, để đồng bộ dữ liệu em phải đặt 1 con cron job cứ  10 phút chạy một lần đồng bộ. Nhưng điều gì xảy ra là mình insert DB A nhưng DB B chưa kịp đồng bộ sang thì sao ạ.

Liên quan bài toán này, em có đọc : https://stackask.com/question/lam-the-nao-de-dong-bo-du-lieu-tu-rdms-toi-elaticsearch/, nhưng chưa giải quyết bài toán trên của em. HA của anh đang nói đến là Zookeeper làm ạ, nếu 1 cluster Kafka chết thì anh cho nó auto tự dựng cluster khác phải không

  • Answer
microservice
Remain: 5
1 Answer
Avatar
tvd12 Professional
tvd12 Professional
  1. Anh thấy việc đồng bộ dữ liệu trong micro service sẽ tuỳ vào nghiệp vụ của dự án em đang làm và nó cũng không quá khó khăn như em nghĩ đâu. Ví dụ:

  • Nghiệp vụ xuất báo cáo theo giờ, thì 1 giờ em chạy đồng bộ dữ liệu từ các service khác về db của service report 1 lần
  • Nghiệp vụ đếm số lượng user realtime, thì em sẽ đồng bộ số lượng user về db của service user liên tục

Nếu mình insert DB A nhưng DB B chưa kịp đồng bộ thì có thể API của B sẽ bị thiếu dữ liệu, và giao diện hiển thị cũng sẽ thiếu dữ liệu

  1. Về lý thuyết là có thể nếu 1 cluster Kafka chết thì mình cho auto tự dựng cluster khác, tuy nhiên trong thự tế thì rất khó để 1 cluster Kafka chết và trong trường hợp 1 cluster Kafka chết thì mình sẽ cần phải tìm cách khởi động lại nó thay vì tạo 1 cluster mới, vì tạo 1 cluster mới không hề đơn giản và mất thời gian, còn liên quan đến cấu hình rồi ACL đủ kiểu nữa em ạ.
  • 1
  • Reply