2012-03-30 16 views
3

Gibt es eine Lösung für die Verwaltung eines Cluster von dynamisch bereitgestellten Servern über JMX?JMX für Cloud-Anwendungen

JMX scheint bei der Arbeit mit einer bekannten Gruppe von Servern gut zu funktionieren - geben Sie den Hostnamen ein, um eine Verbindung herzustellen, eine Verbindung herzustellen, Einstellungen zu ändern und Metriken zu betrachten.

Was passiert, wenn Sie einen ganzen Cluster von Anwendungsinstanzen haben und eine Einstellung für alle Instanzen in diesem Cluster ändern möchten? Gibt es eine Lösung, mit der Sie alle Instanzen auf einmal ändern können, vielleicht über eine Art Service-Registry?

Antwort

1

Werfen Sie einen Blick auf die OpenDMK. Dies ist die Open-Source-Version des Java Dynamic Management Kit. Es bietet JMX mit Discovery Service. Ein Zitat aus der Dokumentation:

Der Discovery-Dienst ermöglicht es Ihnen, Java dynamische Verwaltung Agenten in einem Netzwerk zu entdecken. Dieser Dienst basiert auf einem Ermittlungsclientobjekt , das Multicastanforderungen zum Suchen von Agenten sendet. Um entdeckt zu werden, muss ein Agent einen registrierten Entdecker-Responder in seinem MBean-Server haben. Anwendungen können auch einen Erkennungsmonitor verwenden, der erkennt, wenn Discovery-Responder gestartet oder gestoppt werden.

Wie für Änderungen auf allen Servern auf einmal zu bewirken, wenn Sie den Discovery-Dienst (oder so ähnlich) implementieren, würden Sie in der Lage sein, schnell eine Liste von JMXServiceURL s zu erstellen, die wiederum verwendet werden, könnte ein zu erzeugen Liste der JMXConnector s und damit eine Liste der verbundenen MBeanServerConnection s. Von dort aus sollte es einfach genug sein, einen Multiplex-Wrapper um diese Liste zu erstellen, der Operationen für den Wrapper an jede entfernte JMX-Instanz delegiert. (Fehlerbehandlung und Timeouts könnten etwas schwieriger sein ....)

Man könnte sogar erwägen, ein MBeanServerInterceptor Codierung auf, die eine virtuelle MBeanServer schafft die wie ein MBeanServer aussieht, aber ist eigentlich der oben genannte Multiplexer in der Verkleidung.

// Nicholas

+0

Danke, ich sehe mir OpenDMK an. Leider ist AWS EC2 meine Zielumgebung und Multicast ist nicht möglich. –

+0

Eigentlich ist es kein sehr komplizierter Code. Sie könnten es anpassen, um den Amazon-Messaging-Dienst zu verwenden. Könntest du zurückschreiben, wenn etwas funktioniert? – Nicholas