同一のトポロジを実行する2つの分離されたストームクラスタがあります(フェールオーバーの理由)。私は今いつでも1つのセットアップからデータソースにデータを送信する必要があります(つまり、シンク内のデータを複製しないようにする必要があります)。シームレスでなければなりませんが、切替えの間に最小のダウンタイムで問題はありません。2つの分離されたストームクラスタから送信データを単一のデータソースに同期する方法
これを達成するためにどのような同期メカニズムを使用できますか?
同一のトポロジを実行する2つの分離されたストームクラスタがあります(フェールオーバーの理由)。私は今いつでも1つのセットアップからデータソースにデータを送信する必要があります(つまり、シンク内のデータを複製しないようにする必要があります)。シームレスでなければなりませんが、切替えの間に最小のダウンタイムで問題はありません。2つの分離されたストームクラスタから送信データを単一のデータソースに同期する方法
これを達成するためにどのような同期メカニズムを使用できますか?
これは興味深い質問です。
ストームクラスタを2倍にするだけでは複雑です。多くのランダムな要因が異なる計算速度につながるため、調整が非常に難しい。
より具体的な方法は、シンク(データベース)も倍増することだと思います。フェイルオーバーの理由からこれを行うので、複雑な問題をスキップするために二重のシンクを持つことは公正です。次に問題となるのは、アプリケーションが読み込むデータベースです。それはあなたのシナリオによって異なり、アプリケーションに少し機能を追加する必要があるかもしれません。
販売者のGMVのみを報告する画面アプリケーションがあるとします。私たちには、データベースの1つを指し示すDNSルーターがあります。データの歪みによる障害や遅い計算の場合は、別のデータベースにポイントされたDNSレコードをリダイレクトするだけで済みます。それはとても簡単です。また、それは少し問題を引き起こすかもしれません。データの消費速度が異なるため、GMVが突然低下することがあります(別のクラスタは、他のクラスタと同じように多くのデータを計算していないため)。画面が公開されている場合は大きな問題です。したがって、アプリケーションでGMVが以前よりも大きくなるまで保留を検出する必要があります(数値を落とさないでください)。