私は2つのWebサービスを持っています。各サービスは独自のデータベースを持ち、1つはマスター(A)で、もう1つはスレーブ(B)です。サービスBを呼び出すと、Aを呼び出してAのデータベースを同期させます。データベース同期のWebサービスオーケストレーション
何らかの理由でAが利用できない場合、Bは後でそのデータでAを最新状態にする必要があります。
プロセス外のデータ同期にどのようなメカニズムを使用することができますか?
私は2つのWebサービスを持っています。各サービスは独自のデータベースを持ち、1つはマスター(A)で、もう1つはスレーブ(B)です。サービスBを呼び出すと、Aを呼び出してAのデータベースを同期させます。データベース同期のWebサービスオーケストレーション
何らかの理由でAが利用できない場合、Bは後でそのデータでAを最新状態にする必要があります。
プロセス外のデータ同期にどのようなメカニズムを使用することができますか?
2つのデータベース間でマスターマスターレプリケーションを設定できます。これはMySQLで行います。
command patternのように聞こえることがあります。「見逃した」トランザクションを保存して後で適用すると便利です。いくつかの細かいことをしなければならないかもしれませんが、最後に起こったいくつかのコールのうちどれが起こったのか、起きなかったのかは分かりません。
Aが別のソースから更新されていて、リンクが失われている場合(Aが完全にダウンするのではなく)、競合を解消するために手をつないでいる可能性があります。私はそれを管理するために何かのTemporal Databaseをお勧めしたいと思います。
また、MSMQなどのメッセージングシステムを使用することを考えましたか?
この問題は、Webサービスとは独立したデータベース同期の問題として考える必要があります。 –
masterデータベースはデータセンターの外部であり、データベースの複製にはアクセスできないため、Webサービス層からの同期が望ましい。 –