WildFly 8: un nou servidor d'aplicacions JBoss millorat per a Linux


Com tots sabem, JBoss AS ha estat rebatejat com a WildFly. S'han afegit moltes funcions noves i s'han actualitzat moltes. Finalment, WildFly 8.0.0 Final es va publicar l'11 de febrer de 2014. El líder del projecte WildFly, Jason Greene, va anunciar el mateix.

WildFly 8 és el servidor d'aplicacions de codi obert compatible amb Java EE 7 de Red Hat. Les característiques principals són les següents:

El canvi més gran en això és que ara WildFly 8 té la certificació oficial de Java EE7.

Undertow és un nou servidor web d'alt rendiment escrit en Java. Ara s'ha implementat a WildFly 8. Està realment dissenyat per a un alt rendiment i escalabilitat i pot gestionar milions de connexions. El cicle de vida d'Undertow està completament controlat per l'aplicació d'inserció. Això és extremadament lleuger, amb un jar central que té una mida d'1 MB i un servidor incrustat que utilitza menys de 4 MB d'espai de pila. Això és realment genial.

Com que està utilitzant Undertow, que és compatible amb l'actualització d'HTTP, que permetrà multiplexar diversos protocols a través d'un únic port HTTP. WildFly 8 ha traslladat gairebé tots els seus protocols per ser multiplexats a través de dos ports HTTP: un de gestió i un altre de port d'aplicació. Aquest és realment un gran canvi i un benefici per als proveïdors de núvol (com OpenShift) que executen entre centenars i milers d'instàncies en un sol servidor. En total, té dos ports predeterminats per a la configuració i són 9990 (consola d'administració web) i 8080 (consola d'aplicacions).

Això és el nou i interessant implementat a WildFly 8. Amb això podem crear diferents usuaris i assignar-los a diferents rols segons els requisits. T'ho mostraré més tard amb captures de pantalla.

L'API de gestió ara admet la possibilitat de llistar i visualitzar els fitxers de registre disponibles en un servidor. Ara, tenim l'atribut anomenat \add-logging-api-dependencies disponible per a qualsevol tipus de desplegament en què volem saltar el registre del contenidor. Això desactivarà l'addició de les dependències implícites del registre del servidor. Tenim una altra opció, és a dir, podem utilitzeu un jboss-deployment-structure.xml per excloure el subsistema de registre. Amb això, ajudarà a evitar que el subsistema de registre passi per qualsevol desplegament.

També podem utilitzar un altre paràmetre, és a dir, use-deployment-logging-config per habilitar/desactivar el processament dels fitxers de configuració de registre dins d'un desplegament.

Nota: la propietat del sistema que estàvem utilitzant per desactivar per registre ha quedat obsoleta d'aquesta versió.

Un cop més, el gran canvi és una agrupació. Totes les característiques relacionades amb el suport de clúster s'havien canviat a WildFly 8 i aquestes inclouen a continuació:

  1. La sessió web distribuïda s'ha optimitzat amb el nou servidor web basat en Java, és a dir, Undertow.
  2. Compatibilitat amb mod_cluster per a Undertow.
  3. Capacitats de SSO distribuït optimitzat (inici de sessió únic) i compatibilitat amb Undertow.
  4. Implementació de memòria cau EJB @Stateful distribuïda nova/optimitzada.
  5. WildFly 8 ha afegit una nova API de clúster públic.
  6. Per crear serveis singleton proporciona noves API públiques.

També s'ha millorat la configuració de la CLI. Ja saps que a tots els administradors els agrada treballar amb CLI ;). Per tant, ara podem crear un àlies per a un servidor concret i després podem utilitzar aquest àlies sempre que vulguem connectar-nos a aquest servidor mitjançant l'ordre connect.

Encara hi ha moltes millores i actualitzacions fetes a WildFly 8. Podeu comprovar-ho tot a:

  1. http://wildfly.org/news/2014/02/11/WildFly8-Final-Released/

Instal·lació de WildFly 8 a Linux

Abans de continuar amb la instal·lació, assegureu-vos que teniu Java EE 7 instal·lat al vostre sistema. WildFly 8 no funcionarà amb revisions anteriors. Si us plau, seguiu la guia següent per instal·lar Java EE 7 als sistemes Linux.

  1. Instal·leu JDK/JRE 7u25 a Linux

Utilitzeu l'enllaç següent per descarregar l'últim fitxer zip de WildFly.

  1. http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

També podeu utilitzar l'ordre wget per descarregar directament a la línia d'ordres.

 wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

Copieu el fitxer zip a qualsevol ubicació preferida (per exemple, /data/ en el meu cas) i extreu-lo mitjançant l'ordre descomprimir.

 cp wildfly-8.0.0.Final.zip /data/
 cd /data/
 unzip wildfly-8.0.0.Final.zip

Ara configureu algunes variables d'entorn. Podeu configurar-los al sistema o als vostres fitxers de configuració. Aquí estic configurant els fitxers de configuració standalone.sh i standalone.conf a la carpeta bin.

 cd wildfly-8.0.0.Final
 cd bin/

Afegiu aquestes dues línies següents als fitxers standlone.sh/standlone.conf. Especifiqueu la vostra ubicació d'instal·lació de WildFly i la ubicació de Java Home.

JBOSS_HOME=”/data/wildfly-8.0.0.Final”
JAVA_HOME=”/data/java/jre7/bin/java”

Nota: per a tot el sistema, podeu configurar-lo al fitxer /etc/profile.

Ara inicieu el servidor, és a dir, per al mode autònom utilitzeu standalone.sh i per al mode de domini utilitzeu domain.sh.

 ./standalone.sh
 ./domain.sh

Però, aquí estic començant en mode autònom. Per defecte, començarà amb el fitxer standalone.xml, però també podeu començar amb una altra configuració utilitzant l'opció –server-config.

Com a continuació, estic començant el servidor amb 'standalone-full-ha.xml' i aquest fitxer està present a \$JBOSS_HOME/standalone(profile)/configuration/.

 ./standalone.sh --server-config standalone-full-ha.xml
Calling "/data/wildfly-8.0.0.Final/standalone/configuration/standalone.conf"
Setting JAVA property to "/data/java/jre7/bin/java"
===============================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: "/data/wildfly-8.0.0.Final"

  JAVA: "/data/java/jre7/bin/java"

  JAVA_OPTS: "-client -Dprogram.name=standalone.sh -Xms64M -Xmx512M -XX:MaxPerm
Size=256M -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman"

===============================================================================

13:55:26,403 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:55:33,812 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
13:55:35,481 INFO  [org.jboss.as] (MSC service thread 1-1) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
13:55:58,646 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
...........
13:56:22,778 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
13:56:22,794 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
13:56:22,794 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 64534ms - Started 229 of 356 services (172 services are lazy, passive or on-demand)

Ara podeu apuntar el vostre navegador a http://localhost:8080 (si feu servir el port http configurat per defecte) que us portarà a la pantalla de benvinguda.

Des d'aquí, podeu accedir a les guies de documentació de la comunitat WildFly i a l'accés millorat a la Consola d'administració basada en web.

WildFly 8 ofereix dues consoles administratives per gestionar la instància en execució:

    1. Consola d'administració basada en web
    2. interfície de línia d'ordres

    Abans de connectar-vos a la consola d'administració o de manera remota mitjançant la línia d'ordres, haureu de crear un nou usuari mitjançant l'script add-user.sh a la carpeta bin.

    A continuació, aneu al directori 'bin', configureu 'JBOSS_HOME' a add-user.sh (si la variable no està establerta a les bases del sistema) i creeu l'usuari com a continuació.

     ./add-user.sh

    Un cop iniciat l'script, se us guiarà pel procés per afegir un nou usuari:

    What type of user do you wish to add?
     a) Management User (mgmt-users.properties)
     b) Application User (application-users.properties)
    (a):
    Enter the details of the new user to add.
    Using realm 'ManagementRealm' as discovered from the existing property files.
    Username : admin
    The username 'admin' is easy to guess
    Are you sure you want to add user 'admin' yes/no? yes
    Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
     - The password should not be one of the following restricted values {root, admin, administrator}
     - The password should contain at least 8 characters, 1 alphanumeric character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
     - The password should be different from the username
    Password :
    Re-enter Password :
    What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:
    About to add user 'admin' for realm 'ManagementRealm'
    Is this correct yes/no? yes
    Added user 'admin' to file '/data/wildfly-8.0.0.Final/standalone/configuration/mgmt-users.properties'
    Added user 'admin' to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-users.properties'
    Added user 'admin' with groups  to file /data/wildfly-8.0.0.Final/standalone/configuration/mgmt-groups.properties'
    Added user 'admin' with groups  to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-groups.properties'
    Is this new user going to be used for one AS process to connect to another AS process?
    e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
    yes/no? yes
    To represent the user add the following to the server-identities definition 
    Press any key to continue . . .

    Ara accediu a la consola d'administració basada en web a http://localhost:9990/console i introduïu el nom d'usuari i la contrasenya creats per accedir directament a la consola de gestió.

    Primera pantalla Després d'iniciar sessió.

    Si preferiu gestionar el vostre servidor des de la CLI, executeu l'script jboss-cli.sh des del directori bin que ofereix les mateixes capacitats disponibles a través de la interfície d'usuari basada en web.

     cd bin
     ./jboss-cli.sh --connect
    Connected to standalone controller at localhost:9999

    Per obtenir més informació, seguiu la documentació oficial de WildFly 8 a https://docs.jboss.org/author/display/WFLY8/Documentation.