Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.4.2. Bereitstellen an einen Fabric
4.2.1. Einen Fabric erstellen Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
4.2.1.1. Überblick Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Abbildung 4.2 zeigt die Übersicht eines Beispiel-Fabric, den Sie erstellen werden. Das Fabric Ensemble besteht aus nur einem Fabric Server (wodurch sich dieser Fabric nur zum Experimentieren eignet) und zwei untergeordneten Containern.
Abbildung 4.2. Ein Beispiel-Fabric mit untergeordneten Containern
4.2.1.2. Fabric Server Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Ein Fabric Server (oder Server) bildet die Grundlage eines Fabric. Er beinhaltet einen Registry-Dienst, der eine replizierbare Datenbank mit Informationen zum Status des Fabric verwahrt. Wenn Sie den Fabric zu Beginn erstellen, existiert nur ein einzelner Fabric Server.
4.2.1.3. Untergeordnete Container Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Das Erstellen von einem oder mehreren untergeordneten Containern ist die einfachste Weise einen Fabric zu erweitern. Wie in Abbildung 4.2, »Ein Beispiel-Fabric mit untergeordneten Containern« gezeigt ist der erste Container im Fabric ein »root«-Container, und beide untergeordnete Container sind von ihm abgeleitet.
Jeder untergeordnete Container ist eine unabhängige Red Hat JBoss Fuse Container Instanz, die ihre eigene JVM Instanz betreibt. Die Daten-Dateien für die untergeordneten Container sind im
InstallDir/instances
Verzeichnis gespeichert.
4.2.1.4. Schritte beim Erstellen des Fabric Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Um den einfachen Fabric zu erstellen, der in Abbildung 4.2, »Ein Beispiel-Fabric mit untergeordneten Containern« dargestellt ist, befolgen Sie diese Schritte:
- (Optional) Passen Sie den Namen des »root« Containers an, indem Sie die
InstallDir/etc/system.properties
Datei bearbeiten und einen anderen Namen für diese Eigenschaft festlegen:karaf.name=root
karaf.name=root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AnmerkungBeim ersten Container in Ihrem Fabric ist dieser Schritt optional. Wenn Sie jedoch zu einem späteren Zeitpunkt einen »root« Container mit dem Fabric verbinden wollen, so müssen Sie den Namen des neuen Containers anpassen, damit es nicht zu Konflikten mit bestehenden »root« Containern im Fabric kommt. - Um den ersten Fabric Container zu erstellen, der als Basis für den neuen Fabric dient, geben Sie den folgenden Konsolebefehl ein:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Der aktuelle Container, der standardmäßig den Namenroot
trägt, wird zu einem Fabric Server mit einem installierten Registry-Dienst. Dies ist anfangs der einzige Container im Fabric. Die--new-user
,--new-user-password
und--new-user-role
Optionen legen die Berechtigungen für einen neuen Administrator-Benutzer fest. Das Zookeeper Passwort wird zur Sicherung vertraulicher Daten im Fabric Registry-Dienst verwendet (alle Knoten unter/fabric
).AnmerkungSie werden meist nicht zur Eingabe des Zookeeper Passworts aufgefordert, wenn Sie auf den Registry-Dienst zugreifen, weil es in der aktuellen Sitzung zwischengespeichert wird. Wenn Sie jedoch einen Container mit einem Fabric verbinden, so müssen Sie das Zookeeper Passwort des Fabric eingeben.AnmerkungEs wird empfohlen, dass Sie dem Rechner, der als Host für einen Fabric Server fungiert, eine statische IP-Adresse zuweisen und dass Sie diesen Port explizit mit den--resolver
und--manual-ip
Optionen festlegen, wenn Sie den Fabric erstellen. Für einfache Tests und Demonstrationen können Sie die Loopback-Adresse127.0.0.1
festlegen (wie hier). Weitere Informationen finden Sie im Kapitel »Einen neuen Fabric erstellen« im »Fabric Handbuch«. - Erstellen Sie zwei untergeordnete Container. Heißt Ihr root-Container
root
, so geben Sie den folgenden Konsolenbefehl ein:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Falls Sie zur Eingabe eines JMX Benutzernamens und Passworts aufgefordert werden, so geben Sie die Kombination von Benutzernamen/Passwort ein, die Sie in Schritt 2 definiert haben. - Rufen Sie mit dem
fabric:container-list
Befehl eine Liste aller Container in Ihrem neuen Fabric auf. Die Liste sollte ungefähr so aussehen:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.1.5. Herunterfahren der Container Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Da die untergeordneten Container in ihren eigenen JVMs laufen, stoppen Sie nicht automatisch, wenn der root-Container heruntergefahren wird. Um einen Container und dessen untergeordnete Container herunterzufahren, stoppen Sie zuerst die untergeordneten Container mit dem
fabric:container-stop
Befehl. Um zum Beispiel den aktuellen Fabric komplett zu stoppen, geben Sie diese Konsolenbefehle ein:
JBossFuse:karaf@root> fabric:container-stop child JBossFuse:karaf@root> fabric:container-stop child2 JBossFuse:karaf@root> shutdown
JBossFuse:karaf@root> fabric:container-stop child
JBossFuse:karaf@root> fabric:container-stop child2
JBossFuse:karaf@root> shutdown
Nach dem Neustart des root-Containers müssen Sie explizit die untergeordneten Container mit dem
fabric:container-start
Konsolenbefehl neu starten.
4.2.2. Fabric Profile erstellen Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
4.2.2.1. Überblick Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Ein Profil ist die Grundeinheit der Bereitstellung in einem Fabric. Sie können eines oder mehrere Profile einem Container bereitstellen und der Inhalt dieser bereitgestellten Profile entscheidet, was in dem Container installiert wird.
4.2.2.2. Inhalte eines Profils Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Ein Profil beinhaltet die folgenden Arten von Informationen:
- Die URL Speicherorte von Features Repositorys
- Eine Liste der zu installierenden Funktionen
- Eine Liste zu installierender Bündel (oder - allgemeiner - jedes passende JAR-Paket—einschließlich OSGi Bündel, Fuse Application Bündel und WAR-Dateien)
- Eine Sammlung von Konfigurationseinstellungen für den OSGi Config Admin Dienst
- Java Systemeigenschaften, die den Apache Karaf Container beeinflussen
etc/system.properties
) - Java Systemeigenschaften, die installierte Bündel beeinflussen
etc/system.properties
)
4.2.2.3. Basisprofil Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Profile unterstützen Vererbung. Dies kann von Nutzen sein, wenn Sie einen Cluster an ähnlichen Servern bereitstellen möchten—etwa wenn sich Server nur in der Wahl der TCP-Port-Nummer unterscheiden. Für diesen Fall würden Sie in der Regel ein Basisprofil definieren, das alle den Servern gemeinsamen Bereitstellungsdaten enthält. Jedes einzelne Serverprofil würde vom gemeinsamen Basisprofil erben, aber Konfigurationseinstellungen entsprechend seiner Serverinstanz hinzufügen.
4.2.2.4. Ein Basisprofil erstellen Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Um das
gs-cxf-base
Profil zu erstellen, gehen Sie wie folgt vor:
- Erstellen Sie das
gs-cxf-base
Profil durch Eingabe des Konsolenbefehls:JBossFuse:karaf@root> fabric:profile-create --parent feature-cxf gs-cxf-base
JBossFuse:karaf@root> fabric:profile-create --parent feature-cxf gs-cxf-base
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Fügen Sie das
get-started
Features Repository (siehe Ein Feature für die Applikation definieren) mit dem folgenden Konsolenbefehl demgs-cxf-base
Profil hinzu:JBossFuse:karaf@root> profile-edit -r mvn:org.fusesource.example/get-started/1.0-SNAPSHOT/xml/features gs-cxf-base
JBossFuse:karaf@root> profile-edit -r mvn:org.fusesource.example/get-started/1.0-SNAPSHOT/xml/features gs-cxf-base
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Fügen Sie jetzt das
cxf-http-jetty
Feature (das Support für den HTTP-Jetty-Endpunkt bietet) mit dem folgenden Konsolenbefehl demgs-cxf-base
Profil hinzu:JBossFuse:karaf@root> profile-edit --feature cxf-http-jetty gs-cxf-base
JBossFuse:karaf@root> profile-edit --feature cxf-http-jetty gs-cxf-base
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Fügen Sie jetzt das
get-started-cxf
Feature (das den Web-Dienst Beispielserver liefert) mit dem folgenden Konsolenbefehl demgs-cxf-base
Profil hinzu:JBossFuse:karaf@root> profile-edit --feature get-started-cxf gs-cxf-base
JBossFuse:karaf@root> profile-edit --feature get-started-cxf gs-cxf-base
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2.5. Erstellen abgeleiteter Profile Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Sie erstellen zwei abgeleitete Profile,
gs-cxf-01
und gs-cxf-02
, die unterschiedliche TCP-Ports für den Webdienst konfigurieren. Hierzu gehen Sie wie folgt vor:
- Erstellen Sie das
gs-cxf-01
Profil—welches sich vongs-cxf-base
ableitet—indem Sie diesen Konsolenbefehl eingeben:JBossFuse:karaf@root> profile-create --parent gs-cxf-base gs-cxf-01
JBossFuse:karaf@root> profile-create --parent gs-cxf-base gs-cxf-01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Erstellen Sie das
gs-cxf-02
Profil—welches sich vongs-cxf-base
ableitet—indem Sie diesen Konsolenbefehl eingeben:JBossFuse:karaf@root> profile-create --parent gs-cxf-base gs-cxf-02
JBossFuse:karaf@root> profile-create --parent gs-cxf-base gs-cxf-02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Stellen Sie im
gs-cxf-01
Profil dieportNumber
Konfigurationseigenschaft auf 8185 ein, indem Sie diesen Konsolenbefehl eingeben:JBossFuse:karaf@root> profile-edit -p org.fusesource.example.get.started/portNumber=8185 gs-cxf-01
JBossFuse:karaf@root> profile-edit -p org.fusesource.example.get.started/portNumber=8185 gs-cxf-01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Stellen Sie im
gs-cxf-02
Profil dieportNumber
Konfigurationseigenschaft auf 8186 ein, indem Sie diesen Konsolenbefehl eingeben:JBossFuse:karaf@root> profile-edit -p org.fusesource.example.get.started/portNumber=8186 gs-cxf-02
JBossFuse:karaf@root> profile-edit -p org.fusesource.example.get.started/portNumber=8186 gs-cxf-02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3. Bereitstellen der Profile Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
4.2.3.1. Bereitstellen der Profile an untergeordnete Container Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Nachdem Sie die untergeordneten Container wie in Abschnitt 4.2.1, »Einen Fabric erstellen« und die Profile wie in Abschnitt 4.2.2, »Fabric Profile erstellen« beschrieben erstellt haben, können Sie die Profile jetzt bereitstellen. Sie tun dies wie folgt:
- Stellen Sie das
gs-cxf-01
Profil imchild
Container durch Eingeben dieses Konsolenbefehls bereit:JBossFuse:karaf@root> fabric:container-change-profile child gs-cxf-01
JBossFuse:karaf@root> fabric:container-change-profile child gs-cxf-01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Stellen Sie das
gs-cxf-02
Profil imchild2
Container durch Eingeben dieses Konsolenbefehls bereit:JBossFuse:karaf@root> fabric:container-change-profile child2 gs-cxf-02
JBossFuse:karaf@root> fabric:container-change-profile child2 gs-cxf-02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3.2. Überprüfen Sie, ob der Webdienst läuft Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Um zu überprüfen, ob der Webdienst erfolgreich am
child
Container gestartet wurde, gehen Sie wie folgt vor:
- Falls der untergeordnete Container nicht bereits läuft, starten Sie diesen durch Eingabe des folgenden Befehls:
JBossFuse:karaf@root> container-start child
JBossFuse:karaf@root> container-start child
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Warten Sie, bis der Startvorgang des
child
Containers abgeschlossen ist. Sie können den Provisioning-Status mit demwatch
Befehl wie folgt beobachten:JBossFuse:karaf@root> watch container-list
JBossFuse:karaf@root> watch container-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Stellen Sie wie folgt eine Verbindung zum untergeordneten Container her:
JBossFuse:karaf@root> container-connect child
JBossFuse:karaf@root> container-connect child
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Nach der Verbindung mit dem
child
Container, führen Sie eine Auflistung der aktiven CXF-Endpunkte durch, indem Sie den folgenden Befehl eingeben:JBossFuse:admin@child> cxf:list-endpoints Name State Address BusID [HelloWorldImplPort ] [Started ] [http://0.0.0.0:8185/cxf/HelloWorld ] [org.fusesource.example.cxf-basic-cxf481246446] [FabricResource ] [Started ] [/fabric8 ] [io.fabric8.fabric-rest-cxf1093764918 ]
JBossFuse:admin@child> cxf:list-endpoints Name State Address BusID [HelloWorldImplPort ] [Started ] [http://0.0.0.0:8185/cxf/HelloWorld ] [org.fusesource.example.cxf-basic-cxf481246446] [FabricResource ] [Started ] [/fabric8 ] [io.fabric8.fabric-rest-cxf1093764918 ]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.4. Ein Profil aktualisieren Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
4.2.4.1. Atomic Container Upgrades Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Normalerweise werden Änderungen an einem bereits in einem Container bereitgestellten Profil sofort wirksam. Der Grund hierfür ist, dass der Fabric Agent in dem betreffenden Container (oder Containern) die Fabric Registry in Echtzeit aktiv überwacht.
In der Praxis ist die sofortige Propagierung oftmals unerwünscht. In einem Produktionssystem etwa, sollen Änderungen in der Regel schrittweise eingeführt werden: Zum Beispiel durch anfängliches Testen der Änderungen in nur einem Container, um auf Probleme zu prüfen, ehe die Änderungen an allen Containern vorgenommen werden. Manchmal müssen auch mehrere Bearbeitungen gemeinsam durchgeführt werden, um eine Applikation auf konsistente Weise neu zu konfigurieren.
4.2.4.2. Profil Versionierung Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Für die Qualitätssicherung und Konsistenz ist es in der Regel am besten, Profile atomar zu bearbeiten, wo mehrere Änderungen simultan vorgenommen werden. Um atomare Aktualisierungen zu unterstützen, implementiert Fabric Profil-Versionierung. Anfangs weist der Container auf Version 1.0 eines Profils. Wenn Sie eine neue Profilversion erstellen (zum Beispiel Version 1.1), so sind die Änderungen für den Container unsichtbar, bis Sie ein Upgrade durchführen. Nachdem Sie mit dem Bearbeiten des neuen Profils fertig sind, können Sie alle Änderungen simultan anwenden, indem Sie ein Uprade des Containers zur Verwendung der neuen Version 1.1 des Profils durchführen.
4.2.4.3. Upgrade auf ein neues Profil Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Um zum Beispiel das
gs-cxf-01
Profil zu bearbeiten, wenn es bereitgestellt ist und in einem Container läuft, gehen Sie wie folgt vor:
- Erstellen Sie eine neue Version 1.1, die die ausstehenden Änderungen enthält, indem Sie den folgenden Konsolenbefehl eingeben:
JBossFuse:karaf@root> fabric:version-create Created version: 1.1 as copy of: 1.0
JBossFuse:karaf@root> fabric:version-create Created version: 1.1 as copy of: 1.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Die neue Version wird mit einer Kopie aller Profile von Version 1.0 initialisiert. - Verwenden Sie den
fabric:profile-edit
Befehl, um dieportNumber
vongs-cxf-01
in den Wert 8187 zu ändern, indem Sie den folgenden Befehl eingeben:JBossFuse:karaf@root> fabric:profile-edit -p org.fusesource.example.get.started/portNumber=8187 gs-cxf-01 1.1
JBossFuse:karaf@root> fabric:profile-edit -p org.fusesource.example.get.started/portNumber=8187 gs-cxf-01 1.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Denken Sie daran, Version1.1
beimfabric:profile-edit
Befehl festzulegen, damit die Änderungen an Version 1.1 desgs-cxf-01
Profils angewendet werden. - Führen Sie ein Upgrade des
child1
Containers auf Version 1.1 durch, indem Sie den folgenden Konsolenbefehl eingeben:JBossFuse:karaf@root> fabric:container-upgrade 1.1 child1
JBossFuse:karaf@root> fabric:container-upgrade 1.1 child1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.4.4. Zurücksetzen auf ein altes Profil Link kopierenLink in die Zwischenablage kopiert!
Link kopierenLink in die Zwischenablage kopiert!
Sie können ganz einfach auf die alte Version des
gs-cxf-01
Profils zurücksetzen, indem Sie den fabric:container-rollback
Befehl wie folgt verwenden:
JBossFuse:karaf@root> fabric:container-rollback 1.0 child1
JBossFuse:karaf@root> fabric:container-rollback 1.0 child1