Katalogservice

Der Katalogservice steuert die Verteilung von Shards und ermittelt und überwacht die Vitalität der Container-Server im Datengrid. Der Katalogservice enthält Logik, die inaktiv bleibt und nur geringen Einfluss auf die Skalierbarkeit hat. Der Katalogservice ist so konzipiert, dass er Hunderte gleichzeitig verfügbarer Container-Container bedienen kann, und führt Services für die Verwaltung der Container-Server aus.

Abbildung 1. Katalogservice
Der Katalogservice wird in einer JVM (Java Virtual Machine) ausgeführt und setzt sich aus dem Positionsservice, dem Verteilungsservice, dem Stammgruppenmanager und der Verwaltung zusammen.
Die Zuständigkeiten des Katalogservers setzen sich aus den folgenden Services zusammen:
Arbeitsumgebung
Der Positionsservice wird in den Membern des Datengrids ausgeführt, um Clients und Container-Servern Positionsdaten zu liefern. Container-Server registrieren sich beim Positionsservice, um die gehosteten Anwendungen zu registrieren. Clients können den Positionsservice dann verwenden, um Container-Server für das Hosten von Anwendungen zu suchen.
Verteilungsservice
Der Katalogservice verwaltet die Verteilung von Shards auf die verfügbaren Container-Server. Der Verteilungsservice ist für die Verwaltung der gleichmäßigen Verteilung der Shards auf physische Ressourcen und die Zuordnung einzelner Shards zu ihren Host-Container-Servern zuständig. Der Verteilungsservice wird als einer von N ausgewählten Services im Cluster und im Datengrid ausgeführt. Das bedeutet, dass genau eine Instanz des Verteilungsservice aktiv ist. Wenn eine Instanz ausfällt, wird ein anderer Prozess ausgewählt, der die Arbeit übernimmt. Aus Redundanzgründen wird der Status des Katalogservice in allen Servern, in denen der Katalogservice ausgeführt, repliziert.
Stammgruppenmanager
Die Stammgruppe verwaltet die Peergruppierung für die Verfügbarkeitsüberwachung, fasst Container-Server zu kleinen Servergruppen zusammen und bindet die Servergruppen automatisch ein.

Der Katalogservice verwendet den High Availability Manager (kurz HA-Manager), um Prozesse für die Überwachung der Verfügbarkeit zu gruppieren. Jede Prozessgruppierung ist eine Stammgruppe. Der Stammgruppenmanager gruppiert die Prozesse dynamisch. Diese Prozesse werden für die Skalierbarkeit klein gehalten. Jede Stammgruppe wählt ein führendes Member aus, das für das Senden von Überwachungssignalnachrichten an den Stammgruppenmanager zuständig ist. Diese Nachrichten erkennen, ob ein Member ausgefallen oder noch verfügbar ist. Der Überwachungssignalmechanismus wird auch verwendet, um festzustellen, ob alle Member einer Gruppe ausgefallen sind, was dazu führt, dass die Kommunikation mit dem führenden Member scheitert.

Der Stammgruppenmanager ist für die Organisation der Container in kleinen Servergruppen zuständig, die lose zu einem Datengrid zusammengefasst werden. Wenn ein Container-Server den ersten Kontakt zum Katalogservice herstellt, wartet er auf die Zuteilung einer neuen oder vorhandenen Gruppe. Eine Implementierung von eXtreme Scale setzt sich aus vielen solcher Gruppen zusammen, und diese Gruppierung ist ein Enabler für die Skalierbarkeit von Schlüsseln. Jede Gruppe setzt sich aus Java Virtual Machines zusammen. Ein ausgewähltes führendes Member verwendet den Überwachungssignalmechanismus, um die Verfügbarkeit der anderen Gruppen zu überwachen. Das führende Member leitet die Verfügbarkeitsinformationen an den Katalogservice weiter, damit dieser durch Neuzuordnung und Routenweiterleitung auf Fehler reagieren kann.

Verwaltung
Der Katalogservice ist auch der logische Einstiegspunkt für die Systemverwaltung. Der Katalogservice enthält eine Managed Bean (MBean) und stellt JMX-URLs (Java Management Extensions) für alle vom Katalogservice verwalteten Server bereit.

Für die hohe Verfügbarkeit konfigurieren Sie eine Katalogservicedomäne. Eine Katalogservicedomäne setzt sich aus mehreren Java Virtual Machines, einschließlich einer Master-JVM und einer Reihe von Ausweich-JVMs zusammen. Weitere Informationen finden Sie unter Katalogservice mit hoher Verfügbarkeit.