Đối với những người đang chia tách các ứng dụng nguyên khối thành các microservices, bạn sẽ xử lý vấn đề hóc búa như thế nào khi tách rời cơ sở dữ liệu. Các ứng dụng điển hình mà tôi đã làm việc tích hợp nhiều cơ sở dữ liệu vì lý do hiệu suất và tính đơn giản.
Nếu bạn có hai bảng khác biệt về mặt logic (bối cảnh giới hạn nếu bạn muốn) nhưng bạn thường xử lý tổng hợp trên một lượng lớn dữ liệu đó thì trong nguyên khối, bạn có nhiều khả năng tránh hướng đối tượng và thay vào đó sử dụng tiêu chuẩn cơ sở dữ liệu của mình Tính năng JOIN để xử lý dữ liệu trên cơ sở dữ liệu trước khi đưa chế độ xem tổng hợp trở lại cấp ứng dụng của bạn.
Làm thế nào để bạn biện minh cho việc chia nhỏ dữ liệu đó thành các microservices trong đó có lẽ bạn sẽ được yêu cầu 'nối' dữ liệu thông qua một API thay vì tại cơ sở dữ liệu.
Tôi đã đọc cuốn sách Microservices của Sam Newman và trong chương về tách Monolith, anh ấy đưa ra một ví dụ về "Phá vỡ các mối quan hệ chính đối ngoại", nơi anh ấy thừa nhận rằng thực hiện liên kết trên một API sẽ chậm hơn - nhưng anh ấy tiếp tục nói nếu ứng dụng của bạn dù sao cũng đủ nhanh, liệu nó có chậm hơn trước không?
Điều này có vẻ hơi lấp lánh? Kinh nghiệm của mọi người là gì? Bạn đã sử dụng những kỹ thuật nào để làm cho các phép nối API hoạt động ở mức chấp nhận được?