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
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.
- 1. Come inviare la richiesta OAuth nel nodo
- 2. Come inviare la richiesta POST?
- 3. limitazioni del nodo cassandra
- 4. Impossibile avviare Cassandra: "il nodo esiste già"
- 5. Metodi per verificare la sincronizzazione del nodo Cassandra
- 6. Quanti dati per nodo nel cluster Cassandra?
- 7. Seleziona il prossimo nodo del nodo selezionato in PHP DOM?
- 8. Nodo Cassandra - ricostruzione v.s. riparazione
- 9. Come inviare la richiesta POST HTTP e ricevere risposta?
- 10. Come inviare richiesta utilizzando RestSharp
- 11. SELEZIONA in cassandra dove id! = Null
- 12. Come inviare la richiesta HTTP post utilizzando la molla
- 13. Seleziona TTL per un elemento in una mappa in Cassandra
- 14. nodo js invia richiesta post con corpo di richiesta raw
- 15. Cassandra - Rimozione di un nodo dal cluster
- 16. Modificare il link href prima di inviare la richiesta
- 17. Cassandra NoHostAvailableException mentre è ancora attivo il nodo
- 18. Come impostare la crittografia da client a nodo Cassandra con il driver Java DataStax?
- 19. Posso utilizzare IdUDPClient per inviare la richiesta M-SEARCH?
- 20. Come inviare la richiesta DELETE a phil storione - codeigniter-restserver
- 21. Come posso inviare nuovamente la richiesta nell'interceptor di risposta?
- 22. come inviare la richiesta SOAP con certificato SSL in PHP?
- 23. Come inviare una richiesta GET da PHP?
- 24. come inviare la richiesta di posta con ajax in ember.js?
- 25. Come inviare correttamente una richiesta PATCH
- 26. Come inviare la richiesta a "j_spring_security_check" dal controller
- 27. Come inviare richiesta USSD attraverso la programmazione su iPhone OS
- 28. Seleziona nodo di testo con i CSS
- 29. Come inviare richiesta di richiesta HTTP POST al server
- 30. Rapporto Cassandra cqlsh Cattiva richiesta per l'utilizzo della coerenza
Grazie mille per la spiegazione dettagliata. – Anayag