Ich kämpfe derzeit mit folgendem Problem:in Hazelcast Mehrknoten-Docker Umgebungen mit TCPIP
ich eine Java-EE-Anwendung, die in einem Cluster ausgeführt werden soll fähig sein (es tatsächlich der Fall ist). Für den Datenaustausch zwischen den Knoten verwende ich Hazelcast 3.3.3. Da unsere Kunden Angst vor UDP haben, verwenden wir TCP. Also konfiguriere ich 3 Hascast-Parameter pro Knoten: Die Netzwerkschnittstelle zu verwenden, den Port und die Mitglieder des Clusters. Im wirklichen Leben (keine Docker-Umgebung) funktioniert alles. Jetzt möchte ich meine Java EE-Server in Docker-Container (einen pro Knoten) und auch über Hazelcast verknüpfen.
Was ich tat, war:
auf dem Host-Computer ausgeführt wird, die Docker-Container I mehrere virtuelle Netzwerkschnittstellen (172.21.0.X) erstellt. für jeden Docker Container gab ich Netzwerk-Mappings wie -p 172.21.0.X: 5190: 5190 (5190 ist die Port I für Hazelcast verwenden)
In meiner Java-EE-Anwendung innerhalb des Behälters I Hazelcast Schnittstelle zu hören konfigurierte 172.21.0.X, Port 5190 Mitglieder 172.21.0.X: 5190, ...... Das Problem ist jetzt: Docker weist jedem Münzprüfer eine interne IP-Nummer zu. Im Voraus kann ich nicht sicher sein, welches IP-Nummer-Andockgerät zugewiesen wird. Es ist definitiv nicht die IP, die ich verwenden möchte (172.21.0.X). Hazelcast startet und sagt mir: keine passende Schnittstelle gefunden. Natürlich nicht. Hazelcast überprüft die IP-Schnittstellen des Andock-Containers, etwa 172.4.XX. Dies passt nicht zu der Konfiguration, die ich Haselcast gegeben habe (benutze 172.21.X.X).
Bisher scheint es nicht möglich zu sein, die interne IP-Nummer eines Andock-Containers anzugeben. Ich könnte es von einem laufenden Container abfragen, aber das ist zu spät, da ich die Konfiguration meines Java EE Servers VOR dem Starten des Containers vornehmen muss.
Irgendwelche Hinweise darauf? Ist es möglich, den Hazelcast mit TCPIP laufen zu lassen?
Die Verwendung der "public-address" in der hazelcast-Konfiguration für das Netzwerk hat die Aufgabe erfüllt. Setzen Sie es auf die IP-Adresse, der Andock-Container ist von extern erreichbar und funktioniert. Vielen Dank. – magicroomy