1

Cassandraが高可用性を保証する方法を理解したいと思います。私が知っているのは、Cassandraデータベースにデータを照会するとき、コーディネーターと呼ばれるノードが、必要なデータを含むクラスター内の適切なCassandraノードに照会をルーティングすることです。しかし、JDBC接続URLで指定したノード(クラスター内でコーディネーターとして機能すると思いますが、間違っている場合は訂正してください)自体がダウンした場合はどうなりますか?この場合、Cassandraが高可用性を保証するのはなぜですか?

おそらく、開発者として、そのためのフォールバックメカニズムを提供する必要がありますか?

4

1 に答える 1

4

Cassandraクラスターでは、すべてのノードが同じです。クラスターレベルにはマスターやコーディネーターは存在しません。クラスターに接続するときは、通常、接続する1つ以上のノードを指定しますが、ドライバーが接続すると、他のノードを見つけることができます。これは、接続した最初のノードがダウンした場合、他のノードを認識し、代わりにそれらの1つに接続できることを意味します。

それ自体が要求されたデータをホストしていない(または1より高い整合性レベルが指定されている)ノードにクエリが送信された場合、そのノードはクエリのコーディネーターとして機能しますが、それは一時的な役割であり、任意のノードが引き受けることができますクエリに対するその役割。

クエリ時間を最小限に抑えるために、複数のノードに接続し、要求されたデータが含まれているノードを特定し、そのノードへの接続を使用してクエリを実行しようとするAstyanaxなどのドライバーもあります。

于 2012-07-31T10:15:04.000 に答える