質問

スポットライトにあるNOSQLデータベースのますます多くのNOSQLデータベースは、マスター/スレーブパターンを使用して「可用性」を提供しますが、それが行うことは(少なくとも私の観点から)、いつでも壊れるチェーンの弱いリンクを作成することです。 - マスターがダウンし、奴隷は機能するために停止します。

大量のデータを処理し、読み取り/書き込みを均一にするのに最適な方法ですが、可用性の観点から見られますか?それほどではありません...

一部のNOSQLから、奴隷は簡単にマスターになるように変更できることを理解していますが、これを行うことはほとんどのアプリケーションで扱う頭痛の種です。右?

では、人々はこの種のものをどのように世話しますか?マスター/スレーブデータは、現実の世界でどのように機能しますか?

役に立ちましたか?

解決

これはかなり一般化された質問です。特に話しているデータストアを指定できますか?

私はMongodbと仕事をしてきましたが、これを非常に優雅に処理しています。 「レプリカセット」(基本的には、マスタースレーブクラスター)のすべてのメンバーは、マスターになる資格があります。レプリカセットに接続すると、セットは接続クライアントにセット内のすべてのメンバーについて指示します。セットのマスターがオフラインになった場合、奴隷は自動的に新しいマスターを選出し、クライアントは(セット内のすべてのノードのリストがあるため)接続するまで新しいノードを試します。接続するノードは、クライアントに新しいマスターについて通知し、クライアントは接続を切り替えます。これにより、アプリケーションに変更を加えることなく、完全に透明なマスター/スレーブフェールオーバーが可能になります。

これは明らかに単一の接続では問題ありませんが、再起動はどうですか? MongoDBドライバーもこれを処理します。接続を試してみるノードのリストを受け入れることができ、接続するものが見つかるまでシリアルで試してみます。接続すると、ノードにマスターが誰であるか尋ね、そこに接続を転送します。

最終的な結果は、レプリカセットが確立されている場合、単一のノード爆発がオフラインになることを効果的に心配しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top