Camel subsystém ve Wildfly
25 Jun 2017Camel subsystém ve Wildfly
Dnes napíšu o zajímavé možnosti spojení frameworku Camel s aplikačním serverem Wildfly.
Důvody využití
Máte aplikaci, které vyžaduje některé z těchto vlastností:
- Komunikace se systémy, možnost efektivně reagovat na výpadky
- Monitorování komunikace
- Modulární koncepce aplikace, možnost měnit nebo upravit část aplikace bez výpadku ostatních částí
- Transformace, validace dat, throttling, load balancing v rámci komunikace
- Využívaní integračních vzorů
Pak Camel je integrační a mediační framework, který vám je schopen tyto vlastnosti splnit.
Camel lze použít i tak, že Camel knihovny přímo přidáte do aplikace (do war, ear apod), případně si vytvoříte vlastní modul do aplikačního serveru. Lepší řešení pro aplikační server Wildfly je využití subsystému Camel.
Výhoda využití Camel subsystému:
- Integrovaná managovací konzole Hawtio
- Grafické zobrazení jednotlivých route a zobrazení vytížení
- Automatická incializace Camel při deployi aplikace
- Ukázky kódu a aplikací, ze kterých lze při vývoji vycházet
- Flexibilnější vývoj
Camel
V jednom z předchozích článku jsem psal o integraci Camel frameworku s Spring Boot, které je ideální například na vytváření mikroslužeb. Camel je integrační framework, který velmi zjednodušuje integraci mezi aplikacemi. Obsahuje spoustu podpůrných komponent, kterými se lze napojit na různé systémy (messaging, SOAP/REST služby, databáze apod.). Tento framework lze efektivně napojit například do aplikačních serverů, ale lze jednoduše integrovat do jakékoliv jiné aplikace (malý počet závislostí, modulární architektura). Výhoda tohoto projektu i velká členská základna, velký počet komponent, případně možnost rozšíření o vlastní komponentu.
Wildfly
Wildfly je opensource aplikační server, který podporuje zejména standardy JEE 7 (RedHat má komerční variantu nazvanou JBoss EAP 7). Wildfly je využíván pro běh a monitorování aplikací (war, ear, jar). Architektura Widfly aplikačního serveru je postavena tak, že pomocí rozšíření (subsystémy) lze rozšiřovat jeho funkcionalitu. Widlfly má dnes velmi dobře zpracované služby pro podporu běhu aplikací jako clustering, zabezpečení aplikací, monitorování a konfigurace bez výpadku. Mezi jeho další výhody pak patří možnost instalovat do Cloud prostředí (OpenShift, Azure, AWS), podpora vlastního load balanceru, efektivní konfigurace v cluster zapojení, instalace pomocí Docker. O Wildfly lze napsat samostatný článek, proto se mu někdy později budu věnovat. Aktuální verze je nyní 10.1.0.Final.
Instalace Camel subsystému do Wildfly
Camel není standardní součástí Wildfly a tak musí být odinstalován. Instalace je jednoduchá. Je potřeba stáhnout instalační balík zde. V případě, že běžíte na starší verzi aplikačního serveru Wildfly, je potřeba zkontrolovat kompatibilitu serveru. Stáhněte si aktuální verzi aplikačního serveru a Camel subsystému do jednoho adresáře.
Proveďte instalaci
[bash] unzip wildfly-dist-10.1.0.Final.zip
[bash] tar xvzf wildfly-camel-patch-4.7.0.tar.gz -C wildfly-10.1.0.Final/
V rámci čláku využívám proměnou WILDFLY_HOME, která odkazuje na adresář wildfly-10.1.0.Final
. Konfigurace je ukázána v shell terminálu, ale analogicky lze konfiguraci provést na jiných platformách.
Subsystém se automaticky nainstaluje a vytvoří konfigurační soubory a moduly (knihovny v Camel).
Instalace Camel subsystému do Wildfly
Camel není standardní součástí Wildfly a tak musí být odinstalován. Instalace je jednoduchá. Je potřeba stáhnout instalační balík zde. V případě, že běžíte na starší verzi aplikačního serveru Wildfly, je potřeba zkontrolovat kompatibilitu serveru. Subsystém se automaticky nainstaluje a vytvoří konfigurační Instalace automaticky neupdatuje původní konfigurační soubory (standalone.xml, domain.xml), ale instaluje nové soubory (standalone-camel.xml, domain-camel.xml). Případně do adresáře WILDFLY_HOME/bin je soubor fuseconfig.sh, kterým lze subsystém automaticky vytvořit i v původních konfiguračních souborech.
$WILDFLY_HOME/bin/fuseconfig.sh --configs=camel --enable
Spuštění aplikačního serveru můžete provést například pomocí příkazu.
$WILDFLY_HOME/bin/standalone.sh -c standalone-camel.xml
Tím se spustí aplikační server ve standalone módu. V konzoli po spuštění aplikačního serveru, případně logu (server.log v adresáří WILDFLY_HOME/standalone/log) by se měla objevit následující informace.
[org.wildfly.extension.gravia] (MSC service thread 1-8) Activating Gravia Subsystem
[org.wildfly.extension.camel] (MSC service thread 1-7) Activating Camel Subsystem
A také naběhnutí monitorovací konzole hawtio.
[org.wildfly.extension.camel] (ServerService Thread Pool -- 75) Add Camel endpoint: http://127.0.0.1:8080/hawtio
Nyní můžete přes příkaz CRTL+C aplikační server vypnout.
Konfigurace subsystému Camel
Aby bylo možné přistoupit do monitorovací konzole hawtio, která je součástí CAMEL subsystému, je potřeba přidat uživatele. K tomu lze využít skript add-user.sh, který je součástí aplikačního serveru v adresáří bin
.
sh WILDFLY_HOME/bin/add-user.sh -m -u test -p test1234# -s
Tím se vytvoří management
uživatel, kterým se lze přihlásit do hawtio konzole.
Spuťte znovu aplikační server
$WILDFLY_HOME/bin/standalone.sh -c standalone-camel.xml
A v prohlížeči zadejte url adresu http://127.0.0.1:8080/hawtio/
. Měla by se objevit login stránka.
.
Přihlašte se pomocí uživatele test
a hesla test1234#
. Login by měl úspěšně proběhnout a měla by se objevit základní monitorovací stránka.
.
Nyní máme nainstalovaný subsystém Camel. Konfiguraci a vytváření toků (route) popíší v jednom z dalších článků.