Tôi cần xây dựng một ứng dụng để cài đặt trên máy chủ cục bộ để sử dụng cho các máy khách cục bộ ngay cả khi không có internet, nhưng cũng cần đảm bảo rằng các máy khách từ xa có thể tiếp tục sử dụng ứng dụng mặc dù máy chủ cục bộ không có internet.
Tôi đã nghĩ về việc có hai phiên bản ứng dụng, một phiên bản hoạt động trên máy chủ cục bộ và một phiên bản trên đám mây. Mặc dù máy chủ cục bộ có internet, tất cả các truy vấn đều chuyển đến máy chủ đó và cơ sở dữ liệu chính được sao chép luồng trên đám mây.
Khi internet bị cắt, máy khách từ xa có thể tiếp tục sử dụng ứng dụng để truy vấn nó và chỉ cho phép một thao tác ghi. Phiên bản cục bộ có thể tiếp tục hoạt động mà không gặp bất kỳ sự cố nào.
Khi kết nối internet được khôi phục tới máy chủ cục bộ, cả hai cơ sở dữ liệu sẽ đồng bộ hóa và khởi động lại quá trình sao chép chuỗi giữa hai máy chủ.
Tôi thấy rằng việc sử dụng sao chép luồng postgres không hỗ trợ db chính cũ tiếp tục thêm thông tin. Ví dụ: với pg_rewind, tất cả thông tin mới trong chính cũ sẽ bị xóa trước khi đồng bộ hóa với db dự phòng cũ.
Tôi cần một cách để tôi có thể sử dụng độc lập cả hai cơ sở dữ liệu trong một thời gian nhưng sau đó đồng bộ hóa cả hai trong một DB chính. Làm thế nào tôi có thể làm điều đó?
Dưới đây có một số lược đồ để làm cho nó rõ ràng một chút.
lược đồ