3 つのノードを持つ Cassandra クラスターがあり、そのうち 2 つは稼働しています。これらはすべて同じ DC にあります。Java アプリケーションがクラスターに書き込もうとすると、Cassandra の問題が原因と思われるエラーがアプリケーションで発生します。
原因: com.datastax.driver.core.exceptions.UnavailableException: 一貫性 ONE でクエリに使用できるレプリカが足りません (1 個必要ですが、有効なレプリカは 0 個のみです)、com.datastax.driver.core.exceptions.UnavailableException.copy(UnavailableException.java:79)
意味が分からない部分は、「1 個必要だが、生きているのは 0 個だけ」という記述です。2 つのノードが稼働しており、これはレプリケーションのために 1 つが「生きている」必要があることを意味します。
それとも、エラーメッセージを誤解しているのでしょうか?
ありがとう。
ベストアンサー1
クエリ対象のテーブルが属するキースペースのレプリケーション係数が 1 であるために、このエラーが発生している可能性がありますが、これは正しいですか?
読み取り/更新しているパーティションに、一貫性レベルを満たすのに十分な数のレプリカ (そのデータを持つノード) がない場合、このエラーが発生します。
1つ以上のノードが利用できない状況に対処したい場合は、次の点を検討してください。キースペースを変更するより高い複製係数(この場合は3)を設定し、ノードツール修復各ノードですべてのデータを取得します。この変更により、2 つのノードが失われても一貫性レベル 1 で読み取ることができます。
このカサンドラパラメータ計算機ノード数、レプリケーション係数、一貫性レベルに関する考慮事項を理解するための優れたリファレンスです。