私は現在、中国のデータセンター内にあるシステムをサポートしていますが、ファイアウォールが原因で中国以外ではパフォーマンスが低下しています。AWS でデータセンターをセットアップ中であり、データをレプリケートする必要があります。私たちのアプリケーションは旅行者向けであるため、ユーザーは中国国内と国外で数時間以内にシステムに簡単にアクセスできます。要求事項:
- ほぼリアルタイム (リアルタイムではない) のデータ整合性
- ネットワークが一度に数分間ダウンする可能性があるパーティションを処理する機能
- 300 ~ 500 ミリ秒などの高レイテンシを処理する機能
- リクエストの一部がハングまたはドロップされる、失敗したリクエストを処理する機能
- 無料またはほぼ無料
- 比較的柔軟なクエリを作成する機能 (たとえば、さまざまなフィールドによる並べ替え、LIKE 句などの部分的なキーワード検索など)
現在、Cassandra を使用しており、このリストの最後の項目を除くすべてを処理します。多くのデータは Cassandra の形式に適していませんが、Cassandra のデータ モデルを完全に理解する前に、この方法で作成されました。したがって、最後の要件をサポートするために、次の 2 つのアイデアがあります。
- 何らかのキューイング メカニズムを使用して Cassandra データと同期する各データ センターに MySQL サーバーを追加し、データ コンシューマーはこれらのサーバーに対して読み取り専用クエリのみを実行します。
- データを MySQL または PostGres に移行し、データ センター全体にマルチマスター非同期クラスターをセットアップします。
2 つの質問があります。
- 低品質の WAN でマルチマスター レプリケーションを設定した経験のある方は、次のうちどれがより良いアプローチですか? どちらでもない場合、どのように問題を解決しましたか?
- MySQL、PostGres、MariaDB、またはその他の無料の DB またはサードパーティの拡張機能は、このシナリオをうまくサポートしていますか?