ノード間のコミュニケーション(ゴシップ)

Cassandraは、ゴシップと呼ばれるプロトコルを使用して、Cassandraクラスターに参加している他のノードの場所および状態に関する情報を得ます。

ゴシップは、ノードが自身や他のノードの状態に関する情報を定期的に交換するピアツーピア通信プロトコルです。ゴシップのプロセスは毎秒実行され、クラスター内で最大3つのノードとの間で状態メッセージを交換します。各ノードは、自身およびゴシップを通じて入手した他のノードの情報を交換するので、すべてのノードがクラスターの他のすべてのノードについてすばやく知ることができます。ゴシップ・メッセージにはバージョンが付与されているため、ゴシップ交換の際に、古い情報は特定のノードの最新情報で上書きされます。

ゴシップ通信の問題を回避するには、クラスターにある全ノードで同じシード・ノードのリストを使用します。これは、ノードが初めて起動するときに最も重要になります。デフォルトでは、ノードは以降の再起動のたびに、それまでのゴシップ相手を記憶しています。シード・ノードの指定には、クラスターに新しく参加するノードのゴシップ・プロセスをブートストラップする以外に目的はありません。シード・ノードは単一障害点ではなく、ノードのブートストラップ以外、クラスター運用上の特別な目的はありません。

重要: 複数データ・センター・クラスターでは、シード・リストに各データ・センター(レプリケーション・グループ)からのノードを少なくとも1つ含める必要があります。フォールト・トレランスのために、データ・センターあたり1つ以上のシード・ノードを指定することを推奨します。そうしないと、ゴシップはノードのブートストラップ時に別のデータ・センターと通信する必要があります。保守タスクが増え、ゴシップのパフォーマンスが低下するため、すべてのノードをシード・ノードにすることは推奨しません。ゴシップの最適化は重要ではありませんが、小さいシード・リストを使用することを推奨します(データ・センターあたり約3つのノード)。