2011-08-02 5 views
2

J'ai configuré un cluster Cassandra avec deux nœuds récemment. Le facteur de réplication est défini sur 2 et ils semblent tous deux fonctionner correctement si les deux nœuds sont activés. Maintenant, comment puis-je utiliser hector de manière à ce qu'il continue à fonctionner jusqu'à ce qu'au moins un nœud soit disponible? A partir de maintenant j'ai quelque chose comme suivre.Cassandra Hector Équilibrage de charge

CassandraHostConfigurator cassandraHostConfigurator = new CassandraHostConfigurator(
     "localhost:9160,xx.xx.13.22:9160"); 
cassandraHostConfigurator.setMaxActive(20); 
cassandraHostConfigurator.setMaxIdle(5); 
cassandraHostConfigurator.setCassandraThriftSocketTimeout(3000); 
cassandraHostConfigurator.setMaxWaitTimeWhenExhausted(4000); 
Cluster cluster = HFactory.getOrCreateCluster("structspeech", 
    cassandraHostConfigurator); 
Keyspace keyspace = HFactory.createKeyspace("structspeech", cluster); 
.... 

Disons que si xx.xx.13.22 hôte descend alors je reçois le message suivant dans ma console et tous mes inserts ne parviennent pas jusqu'à ce que le nœud arrive.

Downed xx.xx.13.22(xx.xx.13.22):9160 host still appears to be down: Unable to open transport to xx.xx.13.22(xx.xx.13.22):9160 , java.net.ConnectException: Connection refused: connect 

Voici comment mon keyspace est défini

update keyspace structspeech with placement_strategy = 
'org.apache.cassandra.locator.SimpleStrategy' 
and strategy_options =[{replication_factor:2}]; 

Je suis sûr que je manque quelque chose de trivial, toute aide sera grandement appréciée. Merci

Répondre

4

Par défaut, Hector utilise un niveau de cohérence de Quorum, donc si l'un de vos nœuds est en panne, ce niveau ne peut pas être satisfait.
Lorsque RF = 2 le quorum signifie que vous devez lire et écrire sur les deux noeuds, donc si l'un d'eux est en panne, vous ne pouvez pas l'exécuter.
est ici un outil en ligne agréable qui démontre NRW (N = facteur de réplication, R = lecture cohérence et W = écriture cohérence) http://www.ecyrd.com/cassandracalculator/
Pour modifier le niveau de cohérence lors de l'écriture/l'utilisation de lecture, par exemple AllOneConsistencyLevelPolicyHFactory.createKeyspace(String, Cluster, ConsistencyLevelPolicy)

+0

Le lien est vraiment utile – Sap

1

Quel niveau de cohérence utilisez-vous lorsque vous insérez? Si vous écrivez à QUORUM ou ALL, vous avez besoin que les deux noeuds écrivent avec un facteur de réplication de 2 (un quorum pour 2 noeuds est 2, c'est pourquoi les clusters cassandra utilisent un nombre impair pour le facteur de réplication)

+0

Je suis nouveau à cela, pouvez-vous s'il vous plaît dites-moi comment puis-je le configurer et quel est le nombre idéal pour un cluster de deux ... – Sap

+0

Il ya quelques notes ici, http://www.datastax.com/docs/0.8/ cohérence/indice. Quel niveau de cohérence dépend de votre cas d'utilisation, mais un bon point de départ est un cluster de 3, avec un facteur de réplication de 3, et lire et écrire à QUORUM, cela vous permet de survivre à une défaillance d'un seul nœud. – sbridges

Questions connexes