2012-05-29 17 views
9

Ich bin auf der Suche nach einer Open-Source-Bibliothek, die programmgesteuert Loadbalancing über eine Reihe von Aufrufen an Knoten beliebiger Form ermöglicht - also keine Annahmen über HTTP oder irgendetwas anderes, nur eine Methode Aufruf an ein Objekt. Im Idealfall würde es die folgenden Funktionen bereitstellen:Gibt es eine gute Open-Source-abstrakte Lastenausgleichsbibliothek für Java?

  • verteilt die Last gleichmäßig
  • Retry auf einem anderen Knoten, wenn ein Anruf zu einem Knoten einer Ausnahme
  • Verschieben eines Knoten zu einem „gebrochenen“ Zustand, wenn ein Anruf wirft Dazu gibt es keine weiteren Aufrufe
  • Haben Sie einen Mechanismus für Hintergrund Pings für alle Knoten (gebrochen und aktiv), die gebrochenen in aktiven Zustand wiederherstellen, wenn sie zurückkehren und aktive aktiv in den gebrochenen Zustand, wenn sie Fehler

Ich denke, das sollte schon existieren, aber ein wenig googeln muss es noch finden.

+0

Diese in der Regel in Hardware mit F5 oder Ace erfolgt. – duffymo

+0

Ich denke nicht, dass das in diesem Fall praktikabel ist - wir verwenden eine existierende API, die eine direkte TCP/IP-Socket-Verbindung zu einem entfernten Knoten herstellt, und es gibt kein F5 oder Ass. Es gibt mehrere Knoten, und wir müssen Failover usw. handhaben. Es schien die einfachste Lösung ein Software Load Balancer zu sein. –

Antwort

4

Verwenden Sie die Apache Camel-Bibliothek. Es gibt eine flexible load balancer und die Bibliothek haben eine Vielzahl von Komponenten, so dass Sie nicht bei bestimmten Protokoll oder Service-Implementierung bleiben. Mit der Komponente Camel Bean können Sie sogar POJO-Methodenaufrufe laden.

+0

Fantastisch, danke - genau das, was ich gesucht habe. –

1

Sie können auch JavaSpaces anzeigen. Das Paradigma ist eine einfache Warteschlange. Der am wenigsten aktive Prozessor nimmt am ehesten das nächste Element in der Warteschlange an.

Verwandte Themen