2017-11-28 2 views
1

Um alle Ressourcen auf einer einzelnen Maschine zu verwenden, möchte ich mehrere Dienstinstanzen auf einer einzigen Maschine bereitstellen und eingehende Anforderungen über diese Instanzen verteilen.Ignite, mehrere Dienstinstanzen in einem einzigen Knoten

Laut der Dokumentation scheint es jedoch, dass der Lastausgleich nur in einer Cluster-Knoten-Ebene funktioniert, nicht auf einer Service-Instanz-Ebene.

Ich schrieb Test-Service-Code und 10 Service-Instanzen in einem einzigen -Rechner über deployMultiple() -Methode bereitstellen. Und ich habe diesen Service in meinem Client Programm verwendet, und log sagte, nur eine von 10 Services-Instanzen tatsächlich bedient.

Meine Frage ist, ist es möglich, mehrere Dienstinstanzen in einer einzigen Maschine gleichzeitig dienen zu lassen? Wenn nicht möglich, andere Möglichkeiten? wie, stellen Sie mehrere Docker-Instanzen in eine einzelne Maschine, oder Aufbau Thread-Pool-Struktur in einem Service Implementierung?

Antwort

1

Es ist nicht möglich, mehrere Dienste auf einem einzelnen Knoten bereitzustellen, die Aufrufe von Dienstmethoden werden jedoch trotzdem gleichzeitig verarbeitet. es ist Anzahl der verfügbaren CPU-Kerne https://apacheignite.readme.io/docs/thread-pools#section-services-pool

standardmäßig:

Sie können Service-Poolgröße konfigurieren. Wenn ein Aufruf an einen Knoten mit einem Service kommt, wird ein neuer Thread aus dem Pool genommen.

Sie profitieren also nicht davon, mehrere Instanzen desselben Dienstes auf einem einzelnen Knoten zu haben.

Verwandte Themen