Im về tìm hiểu cách hoạt động của kiến trúc microservices. Cho đến nay tôi không hiểu rằng mỗi microservice cần cơ sở dữ liệu riêng của nó, có ý nghĩa.Làm thế nào để giữ cho DB đồng bộ khi sử dụng kiến trúc microservices?
Vì vậy, giả sử chúng tôi có một microservice khách hàng chịu trách nhiệm tạo khách hàng và trả lại danh sách khách hàng. Các dịch vụ sẽ ofcource có nó DB khách hàng riêng.
Cho phép nói rằng chúng tôi có tải rất cao trên dịch vụ này, vì vậy chúng tôi đã chọn chia tỷ lệ 20x.
Så chúng tôi có 20 microservices và mỗi có DB riêng của mình, và tất cả các dịch vụ nằm phía sau một cân bằng tải.
Bây giờ khách hàng muốn tạo khách hàng, trình cân bằng tải sẽ gửi yêu cầu của khách hàng đến dịch vụ 9/20 và khách hàng được tạo.
Trong lần yêu cầu tiếp theo, cùng một khách hàng muốn chắc chắn rằng khách hàng được tạo và muốn xem danh sách khách hàng, theo yêu cầu, LB gửi anh đến dịch vụ 11/20.
Bây giờ, làm cách nào để đảm bảo rằng dịch vụ 9/20 đã đồng bộ hóa khách hàng mới tạo với db của dịch vụ 11/20?
Trong MSSQL có chức năng giữ cho DB đồng bộ trước khi thực hiện cam kết ban đầu, để lưu dữ liệu trong tất cả các cơ sở dữ liệu khác trước, nhưng cách tiếp cận này sẽ gây ra sự cố trong thời gian dài, vì có nhiều dịch vụ hơn thời gian lâu hơn để thực hiện cam kết?