2011-04-05 6 views
0

J'utilise la bibliothèque phpcassa pour obtenir et définir des données dans cassandra que je l'ai installé sur 2 serveurs .... je fais connexion avec mon nœud de graines à l'aide CassandraConn :: add_node (» .. * . ** ', 9160); donc si l'insertion se reproduit automatiquement sur un autre noeud dans le cluster ... mais si mon noeud germe meurt (si j'arrête le processus cassandra) alors mon insertion ne fonctionnera pas et je suis incapable d'obtenir des données de l'autre noeud aussi :(, donc je fais la bonne chose ... parce que de cette façon leur utilisation du cluster n'est pas alors .. comme idéalement si mon noeud meurt dans l'autre noeud devrait me répondre .. toute aide sera appréciée?Que dois-je faire pour éviter un seul point d'échec dans Cassandra?

Répondre

3

Connect avec RRDNS au lieu d'un seul hôte. http://en.wikipedia.org/wiki/Round-robin_DNS

(vous pouvez également utiliser un équilibreur de charge, mais qui est habituellement ici surpuissant.)

+1

Dans le cas de RRDNS, vous aurez besoin de plusieurs serveurs DNS avec la même configuration statique (ou éventuellement une configuration dynamique plus complexe). Dans le cas d'un équilibreur de charge, vous voulez que deux équilibreurs de charge s'affichent entre eux et avec une adresse IP flottante entre eux. – yfeldblum

1

la plupart des clients Cassandra vous permet de spécifier directement addresse plusieurs serveurs s, et les essayera à son tour si l'un échoue.

Je n'ai pas utilisé phpcassa (seulement pycassa) mais les documents API au http://thobbs.github.com/phpcassa/api/index.html semblent suggérer que vous pouvez spécifier plusieurs serveurs. Round-robin est une autre alternative selon la réponse précédente.

Questions connexes