2016-06-21 2 views
1

In ignite Dokumentation schreibt, dass TcpCommunicationSpi (CommunicationSpi) das TCP/IP verwendet, um mit anderen Knoten zu kommunizieren, und TcpDiscoverySpi (DiscoverySpi) das TCP/IP für Knotenermittlung verwendet. Ich denke, dass 2 (comunicate und entdeckung) Ideen fast gleich sind.Unterschied zwischen TcpCommunicationSpi (CommunicationSpi) und TcpDiscoverySpi (DiscoverySpi)

Bitte meaty mir sagen, was ist der Unterschied zwischen TcpCommunicationSpi (CommunicationSpi) und TcpDiscoverySpi (DiscoverySpi) und Verwendungen?

Antwort

1

TcpDiscoverySpi wird von Knoten verwendet, um einen Cluster von ihnen zu erstellen und zu verwalten. Die Nachrichten, die über diesen SPI gesendet werden, sind system/intern und sie werden von einem Knoten zu einem anderen (Nachbar auf der linken Seite) gesendet. Dies bedeutet, dass der Cluster als Ring organisiert ist und TcpDiscoverySpi zum Austausch interner Informationen zwischen den Knoten verwendet wird.

Auf der anderen Seite, wenn ein Knoten eine Nachricht direkt an den anderen senden muss (Cache put/get, compute, Ereignis, etc.), verwendet TcpCommunicationSpi eine direkte Verbindung zum entfernten Knoten.

+0

Vielen Dank für die Antwort. Aber eine Frage, (bitte beachten Sie, dass ich neu in Ignite bin) habe ich aus Ihrer Antwort verstanden, dass TcpDiscoverySpi für den Aufbau von Cluster und TcpCommunicationSpi für Operationen mit Caches verwendet? ... Wenn es so ist, wie ich nur mit DiscoverySpi I Build-Cluster mit 2 Remote-Knoten auf dem Server und einem Client-Modus (lokaler Knoten) und ich habe erfolgreich puts/gets zwischen den Knoten (wenn meine Caches repliziert oder partitioniert sind). Und ich habe CommunicatuonSpi nicht benutzt. Ich denke, dass DiscoverySpi normalerweise verstanden hat. Aber ComunicationSpi ist für mich unersetzbar. – emanuel07

+0

Und bitte zeigen Sie mir ein visuelles Beispiel mit TcpCommunicationSpi. – emanuel07

+0

@daniels, beide Discovery- und Kommunikations-SPIs werden immer vom Kernel verwendet. Wenn Sie den Kommunikations-SPI nicht explizit einrichten, heißt das nicht, dass er nicht von Ignite verwendet wird. Wenn Sie keine Erkennungs- und Kommunikations-SPIs angeben, werden explizit diejenigen mit Standardeinstellungen (Port-Nummern, IPs, Netzwerk-Timeouts usw.) verwendet. Hier können Sie ein Beispiel sehen, wie TcpCommunicationSpi in der Konfiguration eingestellt wird https://apacheignite.readme.io/docs/cluster-config#isolated-ignite-clusters-on-the-same-set-of-machin – dmagda