Aus einer reinsten Perspektive fühlen sie sich wie identische Konzepte an. Beide verwalten Sätze von Wiederholungen / Knoten und steuern ihren Zugriff von oder durch externe Komponenten.
Mit einem Pool können Sie diese Ressourcen / Knoten aus dem Pool ausleihen und zurückgeben.
Bei einem Cluster befindet sich ein Lastenausgleich vor den Ressourcen / Knoten, und Sie treffen den Lastenausgleich mit einer Anforderung.
In beiden Fällen haben Sie keinerlei Kontrolle darüber, welcher Ressource / welchem Knoten Ihre Anfrage / Ihr Kredit zugeordnet wird.
Ich stelle also die Frage: Was ist der grundlegende Unterschied zwischen dem "Pool" -Muster und einem Load-Balanced-Cluster?
Ein Pool wird verwendet, um zu vermeiden, dass ständig Ressourcen erstellt und zerstört werden, deren Erstellung kostspielig ist. Eine Ressource aus einem Pool kann jeweils nur von einem Client verwendet werden. Verfügbare Ressourcen werden im Pool gespeichert. Wenn Sie eine benötigen, erhalten Sie sie aus dem Pool und machen sie somit für andere Clients nicht verfügbar. Wenn Sie mit der Ressource fertig sind, legen Sie sie zurück in den Pool. Pools werden normalerweise für Datenbankverbindungen und Threads verwendet. Ein weiterer Vorteil besteht darin, dass die Anzahl der Ressourcen (Verbindungen, Threads) auf einem vernünftigen Maximum gehalten werden kann.
Ein Cluster ist eine Sammlung von Knoten (Computer, virtuelle Maschinen), die es ermöglichen, eine größere Anzahl gleichzeitiger Clients zu bedienen (Skalierbarkeit) und einen einzelnen Fehlerpunkt (Failover, Redundanz) zu vermeiden. Beachten Sie außerdem, dass Load Balancer nicht unbedingt zufällig sind. In vielen Fällen verwendet der Load Balancer "sticky" -Sitzungen: Sobald ein Client einem Knoten des Clusters zugewiesen wurde, werden alle nachfolgenden Anforderungen an denselben Knoten gesendet.
Die Ziele sind also nicht die gleichen zwischen einem Pool und einem Cluster. Und die in einem Pool gespeicherten Ressourcen sind nicht die gleichen wie die Ressourcen eines Clusters.
Tags und Links design-patterns load-balancing cluster-computing pool