0

Cassandra を 3 台の個別のマシンにセットアップしました... A、B、C と言ってください。ドキュメントに従って、各マシンの cassandra.yaml ファイルを次のように変更しました。

Machine A: listen_address = A's IP
   rpc_address = A's IP
   seeds = A's IP

Machine B: listen_address = B's IP
   rpc_address = B's IP
   seeds = A's IP

Machine C: listen_address = C's IP
   rpc_address = C's IP
   seeds = A's IP

ここで、B、C のいずれかがダウンしている場合、A からレコードを取得できません。取得が期待されます。ノード、データセンターなどの用語で混乱しています...上記のシナリオでは、すべてが異なるデータセンターであると考えましたが、 nodetool を使用してリング情報を取得すると、同じデータセンター (datacenter1) にそれらが表示されます。Cassandra を効率的に利用できるように、正しいセットアップを知る必要があります。

次のように各ノードにキースペースを作成しました

create keyspace test
  with placement_strategy = 'SimpleStrategy'
  and strategy_options = {replication_factor : 1}
  and durable_writes = true;

一貫性レベルは使用しませんでした...

Datacenter: datacenter1
==========
Replicas: 1

Address     Rack        Status State   Load            Owns                Token                                       
                                                                           849583800602241121                          
B's IP      rack1       Up     Normal  156.98 KB       95.39%              0                                           
C's IP      rack1       Up     Normal  130.3 KB        4.61%               849583800602241121 
4

2 に答える 2

0

レプリケーション係数が 1 の場合、A のデータは B にレプリケートされ、B のデータは C にレプリケートされ、C のデータは A にレプリケートされると想定できます。そのため、1 台のマシンがダウンしても、すべてのデータは引き続き利用できるはずです [Cassandra での可用性]。データをクエリしようとしたときに発生するエラーは何ですか?

3 つのノード (マシン) のクラスターの場合、地理的な場所全体でセットアップをテストする場合を除き、単一のデータ センターで十分です。基本的に、1 つの場所にある一連のノード (マシン) がデータセンターを構成します。したがって、セットアップは正しく、nodetool は情報を正しく表示しています。また、クラスターの各ノードにキースペースを作成する必要はありません。任意の 1 つのノードで作成でき、他のノードがクラスターに参加すると、スキーマは新しく参加したノードに自動的に伝達されます。

于 2013-06-15T06:14:39.747 に答える