2013-06-06 24 views
6

Stiamo creando in modo programmatico nodi Cassandra (auto-generatore di yaml e utilizzando CassandraDaemon). Idealmente saremmo in grado di utilizzare diverse porte su host diversi a causa delle esigenze di configurazione. È possibile ciò (tramite la specifica seed o l'implementazione di una classe personalizzata)? Sembra che la lista dei semi possa prendere solo indirizzi IP e non porte.È possibile utilizzare porte diverse per i nodi in un cluster Cassandra?

risposta

3

Dopo aver guardato il relativo source nel codice di rete di Cassandra, è evidente che questo non è supportato. Nel metodo newSocket(), la porta per il nodo remoto è ottenuta dallo statico DatabaseDescriptor.getSSLStoragePort() (estratto di seguito). Questo non fornisce un valore diverso per ogni host o qualsiasi gancio per farlo:

public Socket newSocket() throws IOException 
{ 
    // zero means 'bind on any available port.' 
    if (isEncryptedChannel()) 
    { 
     return SSLFactory.getSocket(DatabaseDescriptor.getEncryptionOptions(), endPoint(), DatabaseDescriptor.getSSLStoragePort(), FBUtilities.getLocalAddress(), 0); 
    } 
    else { 
     return new Socket(endPoint(), DatabaseDescriptor.getStoragePort(), FBUtilities.getLocalAddress(), 0); 
    } 
} 
2

un'occhiata a https://github.com/pcmanus/ccm, stanno usando le istanze multipe Cassandra sullo stesso nodo. puoi vedere come lo stanno facendo

+0

Grazie, ma io non sto chiedendo di più istanze sullo stesso nodo. Sto chiedendo delle istanze nello stesso cluster (ma su host diversi) usando porte differenti. –

+0

anche se ho capito, questo materiale ccm sta eseguendo istanze diverse sullo stesso nodo su porte diverse in modo che le istanze non entrino in collisione sulle porte e quindi le inseriscano nello stesso cluster. Quindi non si tratta di averli sullo stesso nodo, si tratta di avere istanze diverse in esecuzione su porte diverse ,,, –

+0

ho dato un'occhiata ma non ho visto alcuna prova di utilizzo di porte diverse. stanno usando diversi IP sullo stesso nodo, quindi non hanno bisogno di usare porte diverse. –

Problemi correlati