36

私は、Cassandra シード ノードと、クライアントがどのようにクラスターに接続することを意図しているかについて、少し混乱しています。ドキュメントでこの情報を見つけることができないようです。

クライアントにはシード ノードのリストのみが含まれており、各ノードはクライアントが接続する新しいホストを委任していますか? シード ノードは、クライアント用の特別なノードではなく、ノード間の検出のみを目的としているのですか?

各クライアントは、DC 内のランダム ノードの小さなサンプルを使用して接続する必要がありますか?

それとも、各クライアントが DC 内のすべてのノードを使用する必要がありますか?

4

3 に答える 3

50

私自身の質問に答える:

シード

FAQから:

シードは、起動時にクラスターを検出するために使用されます。

また、「Gossip」に関するDataStaxドキュメントから:

シードノードの指定には、クラスターに参加する新しいノードのゴシッププロセスをブートストラップする以外の目的はありません。シードノードは単一障害点ではなく、ノードのブートストラップ以外のクラスター操作における特別な目的もありません。

これらの詳細から、シードはクライアントにとって特別なものではないようです。

クライアント

クライアント要求に関するDataStaxドキュメントから:

Cassandraのすべてのノードはピアです。クライアントの読み取りまたは書き込み要求は、クラスター内の任意のノードに送信できます。クライアントがノードに接続して読み取りまたは書き込み要求を発行すると、そのノードはその特定のクライアント操作のコーディネーターとして機能します。

コーディネーターの役割は、クライアントアプリケーションと、要求されているデータを所有するノード(またはレプリカ)との間のプロキシとして機能することです。コーディネーターは、クラスター構成のパーティショナーとレプリカ配置戦略に基づいて、リング内のどのノードが要求を取得するかを決定します。

クライアントが接続するノードのプールは、潜在的な障害を考慮して、DC内のほんの一握りの(ランダムな?)ノードである可能性があることを収集します。

于 2012-05-02T03:01:06.827 に答える
25

シード ノードには 2 つの目的があります。

  1. これらは、新しいノードが自分自身をクラスターにアナウンスする場所として機能します。そのため、少なくとも 1 つのライブ シード ノードがないと、新しいノードはクラスターに参加できません。非シード ノードに接続してクラスターの状態を取得する方法がわからないためです。
  2. シード ノードはゴシップのホット スポットとして機能します。ノードは非シードよりもシードの方が頻繁にゴシップを行うため、シードの方が最新の情報を持つ傾向があり、したがってクラスター全体がより最新の情報を持ちます。これが、すべてのノードをシードにするべきではない理由です。同様に、これが、特定のデータ センター内のすべてのノードが、cassandra.yaml ファイルに同じシード ノードのリストを持つ必要がある理由でもあります。通常、データ センターごとに 3 つのシード ノードが理想的です。

cassandra クライアントの接続ポイントは、クライアントにクラスター トポロジを提供するだけです。その後、クライアントはクラスター内の任意のノードに接続できます。そのため、これらはシード ノードに似ており、シードとクライアント コンタクトの両方に同じノードを使用することは理にかなっています。ただし、好きなだけ cassandra クライアント コンタクト ポイントを安全に設定できます。その他の唯一の考慮事項は、クライアントが最初に接続するノードがそのデータ センター アフィニティを設定することです。そのため、特定のデータ センターを優先するように連絡先を注文することができます。

連絡先の詳細については、次の質問を参照してください: Cassandra Java driver: how many contact points is Reason?

于 2015-06-24T21:43:27.847 に答える
10

あなたの答えは正しいです。私が追加する唯一のことは、「ベストプラクティス」のようなものとして、クラスター全体で同じシードリスト(つまり、cassandra.yaml内)を使用することをお勧めすることです。シードはゴシップコードによって(ごくわずかに)異なる方法で処理されるため、ゴシップトラフィックが適切な通常の速度で伝播するのに役立ちます(https://cwiki.apache.org/confluence/display/CASSANDRA2/ArchitectureGossipを参照)。

于 2012-05-02T22:17:55.487 に答える