WildFly 8: un nuevo servidor de aplicaciones JBoss mejorado para Linux


Como todos sabemos, JBoss AS ha cambiado de nombre a WildFly. Se han agregado muchas características nuevas y se han actualizado muchas. Finalmente, WildFly 8.0.0 Final se lanzó el 11 de febrero de 2014. El líder del proyecto WildFly, Jason Greene, anunció lo mismo.

WildFly 8 es el servidor de aplicaciones de código abierto compatible con Java EE 7 de Red Hat. Las características principales son las siguientes:

El mayor cambio en esto es que ahora WildFly 8 tiene la certificación oficial Java EE7.

Undertow es un nuevo servidor web de alto rendimiento escrito en Java. Ahora, esto se ha implementado en WildFly 8. Esto está realmente diseñado para un alto rendimiento y escalabilidad y puede manejar millones de conexiones. El ciclo de vida de Undertow está completamente controlado por la aplicación de incrustación. Esto es extremadamente liviano con un tarro de núcleo que tiene un tamaño de 1 MB y un servidor integrado que usa menos de 4 MB de espacio de almacenamiento. Esto es realmente grandioso.

Dado que está utilizando Undertow, que admite la actualización de HTTP, lo que permitirá multiplexar múltiples protocolos a través de un solo puerto HTTP. WildFly 8 ha trasladado casi todos sus protocolos para que se multiplexen a través de dos puertos HTTP: uno es de administración y otro es de aplicación. Este es realmente un gran cambio y beneficio para los proveedores de la nube (como OpenShift) que ejecutan cientos o miles de instancias en un solo servidor. En total, tiene dos puertos predeterminados para la configuración y son 9990 (Consola de administración web) y 8080 (Consola de aplicaciones).

Esto es lo nuevo e interesante implementado en WildFly 8. Al usar esto, podemos crear diferentes usuarios y asignarlos a diferentes roles según los requisitos. Te lo mostraré más tarde con capturas de pantalla.

La API de administración ahora admite la capacidad de listar y ver los archivos de registro disponibles en un servidor. Ahora, tenemos un atributo llamado "add-logging-api-dependencies" disponible para cualquier tipo de implementaciones en las que queramos omitir el registro de contenedores. Esto deshabilitará la adición de las dependencias implícitas de registro del servidor. Tenemos otra opción, es decir, podemos usar un jboss-deployment-structure.xml para excluir el subsistema de registro. Al usar esto, ayudará a evitar que el subsistema de registro pase por cualquier implementación.

También podemos hacer uso de otro parámetro, es decir, use-deployment-logging-config para habilitar/deshabilitar el procesamiento de archivos de configuración de registro dentro de una implementación.

Nota: La propiedad del sistema que estábamos usando para deshabilitar por registro ha quedado obsoleta en esta versión.

Una vez más, el gran cambio es un agrupamiento. Todas las características relacionadas con el soporte de agrupación en clústeres se han cambiado en WildFly 8 y se incluyen a continuación:

  1. La sesión web distribuida se ha optimizado para ello con el nuevo servidor web basado en Java, es decir, Undertow.
  2. soporte de mod_cluster para Undertow.
  3. Capacidades de SSO distribuido optimizado (inicio de sesión único) y compatibilidad con Undertow.
  4. Implementación de almacenamiento en caché @Stateful EJB distribuida nueva/optimizada.
  5. WildFly 8 agregó una nueva API de agrupación en clústeres pública.
  6. Para crear servicios singleton, proporciona nuevas API públicas.

También se ha mejorado la configuración de CLI. Sabes que a todos los administradores les encanta trabajar en CLI;). Entonces, ahora podemos crear un alias para un servidor en particular y luego podemos usar ese alias siempre que queramos conectarnos a ese servidor usando el comando connect.

Todavía hay muchas mejoras y actualizaciones realizadas en WildFly 8. Puede consultar todas estas en:

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

Instalación de WildFly 8 en Linux

Antes de continuar con la instalación, asegúrese de tener Java EE 7 instalado en su sistema. WildFly 8 no funcionará con revisiones anteriores. Siga la siguiente guía para instalar Java EE 7 en los sistemas Linux.

  1. Instale JDK/JRE 7u25 en Linux

Utilice el siguiente enlace para descargar el último archivo zip de WildFly.

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

También puede usar el comando "wget" para descargar directamente en la línea de comandos.

[[email protected]]# wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

Copie el archivo zip en cualquier ubicación preferida (por ejemplo, "/ data /" en mi caso) y extráigalo con el comando "descomprimir".

[[email protected]]# cp wildfly-8.0.0.Final.zip /data/
[[email protected]]# cd /data/
[[email protected] data]# unzip wildfly-8.0.0.Final.zip

Ahora establezca algunas variables de entorno. Puede configurarlos en el sistema o dentro de sus archivos de configuración. Aquí estoy configurando dentro de los archivos de configuración standalone.sh y standalone.conf en la carpeta "bin".

[[email protected] data]# cd wildfly-8.0.0.Final
[[email protected] data]# cd bin/

Agregue estas dos líneas siguientes a los archivos standlone.sh/standlone.conf. Especifique su ubicación de instalación de WildFly y la ubicación de inicio de Java.

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

Nota: Para todo el sistema, puede configurarlo en el archivo "/ etc/profile".

Ahora inicie el servidor, es decir, para el modo independiente, utilice "standalone.sh" y para el modo de dominio utilice "domain.sh".

[[email protected] bin]# ./standalone.sh
[[email protected] bin]# ./domain.sh

Pero, aquí estoy comenzando en modo independiente. De forma predeterminada, comenzará con el archivo "standalone.xml", pero también puede comenzar con alguna otra configuración usando la opción "–server-config".

Como a continuación, estoy iniciando el servidor con "standalone-full-ha.xml" y este archivo está presente en "$JBOSS_HOME/standalone (profile)/configuration /".

[[email protected] bin]# ./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)

Ahora puede apuntar su navegador a "http:// localhost: 8080" (si usa el puerto http configurado por defecto), lo que lo lleva a la pantalla de bienvenida.

Desde aquí, puede acceder a las guías de documentación de la comunidad WildFly y al acceso mejorado a la Consola de administración basada en la web.

WildFly 8 proporciona dos consolas administrativas para administrar la instancia en ejecución:

    1. Consola de administración basada en web
    2. interfaz de línea de comandos

    Antes de conectarse a la consola de administración o de forma remota usando la línea de comando, deberá crear un nuevo usuario usando el script "add-user.sh" en la carpeta bin.

    A continuación, vaya al directorio "bin", configure "JBOSS_HOME" en add-user.sh (si la variable no está configurada en las bases del sistema) y cree un usuario como se muestra a continuación.

    [[email protected] bin]# ./add-user.sh

    Una vez que inicie el script, se le guiará a través del proceso para agregar un nuevo usuario:

    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 . . .

    Ahora acceda a la Consola de administración basada en web en "http:// localhost: 9990/console" e ingrese el nuevo nombre de usuario y contraseña creados para acceder directamente a la Consola de administración.

    Primera pantalla después de iniciar sesión.

    Si prefiere manejar su servidor desde la CLI, ejecute el script "jboss-cli.sh" desde el directorio "bin" que ofrece las mismas capacidades disponibles a través de la interfaz de usuario basada en web.

    [[email protected] bin]# cd bin
    [[email protected] bin]# ./jboss-cli.sh --connect
    Connected to standalone controller at localhost:9999

    Para obtener más información, siga la documentación oficial de WildFly 8 en https://docs.jboss.org/author/display/WFLY8/Documentation.