2017-02-06 3 views
0

Wir verwenden die WAN-Konfiguration für mehrere Standorte. Wir haben zwei Cluster über geographische Entfernungen in Nordamerika und Europa.Gemfire WAN mit Peer to Peer kombiniert

Kontext: Cluster 1 hat zwei Mitglieder A und B, die beide Gateway-Absender sind. Cluster B hat zwei Mitglieder C und D, die beide Gateway-Empfänger sind. Wenn Element A in Cluster 1 gestartet wird, liest es Daten aus der Datenbank und lädt sie in den Gemfire-Cache, der an den Cluster 2 gesendet wird. Alles ist bisher gut.

Problem: Wenn beide Mitglieder in Cluster 2 zur gleichen Zeit neu gestartet werden, verlieren sie alle Gemfire-Regionen/Daten. An diesem Punkt konnten wir Member A in Cluster 1 neu starten, es lädt wieder Daten aus der DB und wird an Cluster B weitergeleitet. Wir würden es jedoch vorziehen, den Neustart von Member A zu vermeiden und ohne auf der Festplatte zu bleiben.

Gibt es eine Lösung, bei der, wenn Cluster 2 neu gestartet wird, eine vollständige Kopie der Daten von Cluster 1 angefordert werden kann?

Nicht sicher, ob das möglich ist, aber könnten wir Peer to Peer für die Gateway-Empfänger in Cluster 2 (über WAN) einrichten, damit sie beim Neustart automatisch aktualisiert werden.

Dank

Antwort

0

eine vollständige Kopie der Daten über WAN zu erhalten ist zu diesem Zeitpunkt nicht unterstützt. Stattdessen können Sie eine Funktion für alle Mitglieder von Site A ausführen, die einfach über alle Daten iteriert und in der Region wieder zurücklegt. d. h. so etwas wie:

public void execute(FunctionContext context) { 
    RegionFunctionContext ctx = (RegionFunctionContext)context; 
    Region localData = PartitionRegionHelper.getLocalDataForContext(ctx); 
    for (Object key : localData.keySet()) { 
    Object val = localData.get(key); 
    localData.put(key, val); 
    } 
} 
+0

Danke, diese Funktion müsste jedes Mal manuell ausgeführt werden, wenn wir eine Kopie benötigen, oder? – Henry

+0

Ja. Leider glaube ich nicht, dass es eine öffentliche API gibt, in die Sie dieses Verhalten einbinden können, also müsste es manuell sein. – Swapnil