MySQLを使用してデータを保存するWebアプリがあります。Webアプリは内部にあります(インターネット経由では利用できません)。
このアプリケーションを3つ(場合によってはそれ以上)の場所(ブランチオフィス)に展開する必要があります。データを同期できる必要があります(ある場所で作成されたエントリは、他のブランチの場所で利用できます)。
要件
- Webアプリのローカルインスタンス+mysqlデータベース
- 各場所はローカルで読み取りと書き込みを行います/独自のネットワーク上にあります
- データベースは1日1回(おそらくSSH経由のスクリプトを介して)同期されるため、各場所に同じデータがあります。
これを(これまでのところ)理解できた唯一の方法は、UUID(一意の識別子)を作成し、各行をソースビット(発信元の場所用)と同期ビット(new = 0、synced = 1)でエンコードすることです。毎晩各場所にSSHで接続し、各場所に= my source and synced = 0の行を追加するスクリプトを作成します...これは野蛮で、あまりエレガント/信頼性がないことを認識していますが、他に何をすべきかわかりません。
クライアントは、インターネット接続が失敗した場合、アプリがローカルで機能できるようにしたいが、他のブランチ間で(夜間のスクリプトなどを介して)同期できるようにしたいと考えています。私が言ったように、すでに合計3つの場所があり、おそらく今年後半にはさらに多くの場所が来るでしょう。
アーキテクチャに関するアドバイスをいただければ幸いです。
PS。セキュリティ上の理由から、データベースをインターネットに接続していません。しかし、すべての提案を受け入れます。
ありがとう。