2014-11-22 14 views
6

Immaginate che un cluster Cassandra debba essere accessibile da un'applicazione client. In Java API creiamo un'istanza di cluster e inviamo la richiesta di lettura o scrittura tramite una sessione. Se usiamo la coerenza di lettura/scrittura UNO, come l'API seleziona il nodo attuale (nodo coordinatore) per inoltrare la richiesta. È una selezione casuale? per favore aiutaci a capirlo.Come Cassandra seleziona il nodo per inviare la richiesta?

risposta

7

I driver di Cassandra utilizzano il protocollo "gossip" (e un processo chiamato discovery del nodo) per ottenere informazioni sul cluster. Se un nodo diventa non disponibile, il driver client tenta automaticamente altri nodi e pianifica i tempi di riconnessione con il (i) guasto (i). Secondo to the DataStax docs:

Il pettegolezzo è un protocollo di comunicazione peer-to-peer in cui i nodi scambiarsi periodicamente informazioni sullo stato su se stessi e circa altri nodi si conoscono. Il processo di gossip viene eseguito ogni secondo e scambia messaggi di stato con un massimo di altri tre nodi nel cluster. I nodi scambiano informazioni su se stessi e sugli altri nodi di cui hanno parlato a chiacchiere, quindi tutti i nodi apprendono rapidamente su tutti gli altri nodi nel cluster.

In sostanza, l'elenco di nodi a cui si connette il client, sono i punti di contatto iniziali per ottenere informazioni sull'intero cluster. Questo è il motivo per cui il client può comunicare con tutti i nodi del cluster (se necessario) anche se è possibile fornire solo un piccolo sottoinsieme di nodi nella stringa di connessione.

Una volta che il conducente ha le informazioni sui pettegolezzi sul cluster, può quindi prendere decisioni intelligenti su quale nodo eseguire una query. La selezione del nodo non è un processo di votazione o selezione casuale. In base alle informazioni sui pettegolezzi restituite, il driver client applica il numero Load Balancing Policy. Mentre prende in considerazione diversi fattori, in pratica cerca di scegliere il nodo con la "distanza" di rete più bassa dal client.

+0

Grazie mille per la spiegazione dettagliata. – Anayag

Problemi correlati