2013-06-06 3 views
6

Wir erstellen programmatisch Cassandra-Knoten (automatische Generierung von yaml und Verwendung von CassandraDaemon). Idealerweise könnten wir aufgrund von Konfigurationsanforderungen unterschiedliche Ports auf verschiedenen Hosts verwenden. Ist das möglich (über die Seed-Spezifikation oder die Implementierung einer benutzerdefinierten Klasse)? Es scheint, dass die Seed-Liste nur IP-Adressen und keine Ports annehmen kann.Ist es möglich, verschiedene Ports für Knoten in einem Cassandra-Cluster zu verwenden?

Antwort

3

Nach dem Blick auf die relevanten source in der Cassandra-Netzwerk-Code, ist es offensichtlich, dass dies nicht unterstützt wird. In der newSocket() Methode wird der Port für den Remote-Knoten aus dem statischen DatabaseDescriptor.getSSLStoragePort() abgerufen (Auszug unten). Dies gibt keinen anderen Wert pro Host oder einen anderen Haken, um dies zu tun:

2

werfen Sie einen Blick auf https://github.com/pcmanus/ccm, sie verwenden Multiple Cassandra Instanzen auf dem gleichen Knoten. Sie können sehen, wie sie es tun.

+0

Danke, aber ich frage nicht über mehrere Instanzen auf dem gleichen Knoten. Ich frage nach Instanzen im selben Cluster (aber auf verschiedenen Hosts) mit unterschiedlichen Ports. –

+0

Nun, ich verstehe, diese ccm stuff läuft verschiedene Instanzen auf dem gleichen Knoten an verschiedenen Ports, so dass Instanzen nicht auf Ports kollidieren und dann sie auch in den gleichen Cluster legt. Es geht also nicht darum, sie auf dem gleichen Knoten zu haben, es geht darum, verschiedene Instanzen auf verschiedenen Ports laufen zu lassen, –

+0

Ich habe einen Blick darauf geworfen, aber ich habe keinen Hinweis auf die Verwendung anderer Ports gesehen. Sie verwenden unterschiedliche IPs auf demselben Knoten, sodass sie keine anderen Ports verwenden müssen. –

Verwandte Themen