2

Cassandra クラスターに接続する方法が明確でないため、ここで何か誤解している可能性があります。AWS で Priam が管理する 5 ノードの Cassandra 1.2.1 クラスターがあります。次のようなコードを使用して、Astyanax を使用してこのクラスターに接続したいと考えています。

conPool = new ConnectionPoolConfigurationImpl(getConecPoolName())               .setMaxConnsPerHost(CONNECTION_POOL_SIZE_PER_HOST).setSeeds(MY_IP_SEEDS)
                .setMaxOperationsPerConnection(100) // 10000

MY_IP_SEEDS として何を使用すればよいですか? すべてのノードの IP をコンマで区切って使用する必要がありますか? それとも、1 台のマシン (シード マシン) の IP を使用する必要がありますか? 1 台のマシンの IP だけを使用すると、あまりにも多くのリクエストでこのマシンが過負荷になるのではないかと心配です。

Priam には「get_seeds」REST API ( https://github.com/Netflix/Priam/wiki/REST-API ) があり、ノードごとに IP のリストを返します。また、RAC ごとに 1 つのシードがあることも知っています。ただし、シードノードがダウンした場合はどうなるかわかりません...新しい接続を作成しようとすると、他のノードに接続する必要がありますよね?

4

1 に答える 1

2

シード ノードは、ノードの起動時にクラスターへの道を見つけるためだけのものです。過負荷の問題はありません。

もちろん、新しいノードを起動して実行するには、ノードの 1 つが到達可能であり、クラスタ内で起動している必要があります。

したがって、最善の方法は、ノードを開始する前に Priam からシード リストを更新することです。Priam は、自動的に更新される DNS エントリの背後にある必要があります。

可用性が最も高い場合は、Priam にアクセスできない場合でもノードを起動できるように、パペットまたはシェフの構成を保存するのと同じように、Priam からシードの現在のリストを定期的に保存し、それらをミラー化して保存する必要があります。

于 2013-04-19T12:52:07.267 に答える