Wir verfügen über eine Spring-Mvc-Anwendung (Client), über die eine Verbindung zu zwei verschiedenen verteilten Gemfire-Systemen und exponierten Daten über REST-Dienste hergestellt wird. Beim Bootstrapping der Spring-Mvc-Anwendung erhalten wir eine Ausnahme, dass es keine Verbindung zu zwei verteilten Systemen herstellen kann: Wir haben zwei Client-Caches in unserer Konfiguration definiert, die ein Problem verursachen, aber wir müssen eine Verbindung zu zwei verteilten Systemen herstellen. Wie können wir diesen Fehler beheben? Wir haben zwei Client-Cache-Tags in der Servlet-XML definiert, die ein Problem verursachen.In dieser VM gibt es bereits eine Verbindung zu einem verteilten System
Antwort
Wesentlichen sowohl die GemFire DistributedSystem
und die ClientCache
sind Singletons in einem einzigen JVM Prozess, und es ist nicht möglich, 2 verschiedene Client-Cache-Speicher in der gleichen JVM zu haben, mit signifikant unterschiedlichen DistributedSystem
Konfigurationen.
Ich habe von Kunden gehört, die einen einzelnen Client-Cache verwenden, der mit zwei verschiedenen GemFire-Clustern verbunden ist (d. H. DistributedSystems
), obwohl ich nicht sicher bin, ob dies tatsächlich empfohlen wird.
Sie könnten Folgendes versuchen. Angenommen, Sie haben zwei Cluster ...
Cluster 1: Locator A, Server B, Server C
Cluster 2: Locator Z, Server X, Server Y.
Sie dann in der Lage sein könnten, wie so ...
<gfe:client-cache/>
<gfe:pool id="clusterOnePool" ... >
<gfe:locator host="LocatorA-Host/IP" port="LocatorA-Port"/>
</gfe:pool>
<gfe:pool id="clusterTwoPool" ...>
<gfe:locator host="LocatorZ-Host/IP" port="LocatorZ-Port"/>
</gfe:pool>
<gfe:client-region id="RegionInClusterOne" shortcut="[PROXY|CACHING_PROXY]"
pool-name="clusterOnePool">
...
</gfe:client-region>
<gfe:client-region id="RegionInClusterTwo" shortcut="[PROXY|CACHING_PROXY]"
pool-name="clusterTwoPool">
...
</gfe:client-region>
Ich bin nicht sicher, ob das funktioniert, aber vielleicht einen einzigen Cache mit 2 Pools zu erstellen . Ich bin mir auch nicht sicher, ob das auch wirklich empfohlen wird.
Was ist Ihre UC für die Verbindung von Clients mit 2 verschiedenen Clustern?
- 1. Kafka im verteilten System
- 2. Multithreading Fehler: Es gibt bereits eine offene Datareader dieser Verbindung zugeordnet, die zuerst geschlossen werden muss
- 3. Wie duplizierte Werte im verteilten System entfernen?
- 4. Gibt es eine Möglichkeit, eine vagabundierende Box zu klonen, die bereits
- 5. Gibt es eine Möglichkeit, 3G-Verbindung unter Linux zu überprüfen?
- 6. Gibt es eine bessere Möglichkeit, dieser Zeichenfolge zu entkommen?
- 7. Gibt es bereits eine bedingte Zip-Funktion in C#?
- 8. Gibt es eine Möglichkeit, eine Berührung in das System zu fälschen?
- 9. Gibt es eine Möglichkeit, eine bereits geschlossene WPF-Fensterinstanz wiederzuverwenden
- 10. Gibt es eine sichere Möglichkeit, im Auftrag eines Benutzers eine Verbindung zu einem IMAP-Server herzustellen?
- 11. Python Webdriver Verbindung zu bereits Webseite (Selen)
- 12. Django SECRET_KEY in einem verteilten Setup
- 13. Gibt es eine Implementierung dieser Abfragesyntax in TSQL?
- 14. Erstellen kurzer URLs in einem verteilten Datenspeicher
- 15. mysql vb.net Es ist bereits ein Open Data Reader mit dieser Verbindung zugeordnet
- 16. Welche Möglichkeiten gibt es, ein Plugin-System zu implementieren?
- 17. Docker zu VM Networking
- 18. Wie berechnet man die Verteilung (Histogramm) großer Datenmengen in einem verteilten System?
- 19. Verbindung bereits geschlossen
- 20. Gibt es eine Möglichkeit, docker-machine zu zwingen, VM mit einer bestimmten IP zu erstellen?
- 21. Ist es möglich, Portable VM zu erstellen?
- 22. Azure VM Remote Desktop kann keine Verbindung
- 23. Gibt es eine Möglichkeit, eine ADO.NET-Verbindung zu erstellen und die Ambient-Transaktion zu ignorieren?
- 24. Verbindung zu einem Server ohne Shell-Initialisierung
- 25. Gibt es eine Möglichkeit, Textumbruch in einem Textfeld zu erkennen?
- 26. Gibt es eine Möglichkeit, Variablen in einem Array zu deklarieren?
- 27. Willkommen zurück, Sie haben bereits eine Verbindung mit dieser App über Google+ Anmeldung als *
- 28. Gibt es eine Möglichkeit, zu überprüfen, ob eine Datenbanktabelle bereits einen Datensatz mit einem bestimmten Wert in Yii2 enthält
- 29. Gibt es MVC Embedded System GUI-Beispiele?
- 30. Gibt es eine Möglichkeit, eine bereits definierte Präprozessor-ID zu ersetzen?
Hinweis, ich habe hier ein Beispiel dafür erstellt (https://github.com/jxblum/spring-gemfire-tests/blob/master/src/test/java/org/spring/data/gemfire/cache/ ClientCacheConnectedToMultipleDistributedSystemsTest.java) Zuerst müssen Sie in Ihrer IDE Laufkonfigurationen für die 2 GemFire Server-Konfigurationen (GemFireServerAppOne und GemFireServerAppTwo) einrichten. Sobald die Server ausgeführt werden, können Sie den Test ausführen. Beachten Sie auch, dass die 2 Server nicht an demselben DS teilnehmen. Sie sind getrennt und obwohl sie eigenständig sind, repräsentieren sie wirklich 2 Cluster (mit je 1 Mitglied). –
Hallo John, als ich die obige Konfiguration versuchte, bekam ich einen Fehler NoUniquieBeanDefinitionException: Keine qualifizierende Bohne vom Typ com.gemstone.gemfire.cache.client.Pool –
verursacht durch: org.springframework.beans.factory.BeanCreationException: Error creating bean mit name 'gemfireCache': FactoryBean hat eine Exception bei der Objekterstellung geworfen; n Die Ausnahme von ested ist org.springframework.beans.factory.BeanInitializationException: Keine Bean des Typs 'com.gemstone.gemfire.cache.client.Pool' mit dem Namen 'null' wurde gefunden .; verschachtelte Ausnahme ist org.springframework.beans.factory.NoUniqueBeanDefinitionException: Keine qualifizierende Bean vom Typ [com.gemstone.gemfire.cache.client.Poo l] ist definiert: erwartet einzelne übereinstimmende Bean aber gefunden 2: –