2016-07-04 14 views
0

Was ist der richtige Weg für die Verbindung von neo4j HA-Cluster mit neo4j-Ogm und ermöglicht hohe Verfügbarkeit und liest Scale-out?Verbindung zu neo4j HA Cluster

Ich habe einige Lösungen gesehen, die Haproxy beinhaltet.

Die erste ist die neo4j ogm-manual, die zeigt, wie Haproxy konfiguriert wird, um Verbindungen zum aktuellen Master zu übertragen. Diese Lösung ermöglicht hohe Verfügbarkeit, aber keine Scale-out-Freigabe lautet.

Die zweite ist Stefan Armbruster Blog "neo4j and haproxy: some best practices and tricks" über die Konfiguration Haproxy für Routing-Operationen liest für den gesamten Cluster und Schreibvorgänge nur für den Master-Server.

Ich habe einige Probleme mit Stefan Lösung:

  1. ich nicht Schraube Protokoll verwenden kann, muss ich http-Treiber verwenden.
  2. Ich werde Transaktionen für all meine Anfragen verwenden, und ich fürchte, es zu Problemen führen, weil nach dem Neo4j Entwicklerhandbuch:

    Offene Transaktionen werden unter den Mitgliedern eines HA-Clusters nicht geteilt. Wenn Sie diesen Endpunkt in einem HA-Cluster verwenden, müssen Sie daher sicherstellen, dass alle Anforderungen für eine bestimmte Transaktion an dieselbe Neo4j-Instanz gesendet werden.

Antwort

0

Im Moment Neo4j OGM unterscheidet nicht zwischen liest und schreibt und ist daher nicht in der Lage zu entscheiden, ob eine Leseanforderung an einen Slave zum Beispiel zu senden. Diese Funktion steht auf der Roadmap, aber im Moment ist es am sichersten, alle Transaktionen an den Master zu leiten.

+0

Vielen Dank, Ihre Antwort wird sehr geschätzt. Ich verstehe, dass die aktuelle Version von Neo4j OGM nicht zwischen Lese- und Schreibvorgängen unterscheidet. Ich versuche, einen Weg zu finden, eine Arbeit zu tun, um meinem System zu ermöglichen, die Lesevorgänge zu skalieren, bis dieser Abruf verfügbar ist. –

Verwandte Themen