Búsqueda de sitios web

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


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

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

Compatibilidad con Java EE 7

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

Servidor web de alto rendimiento

Undertow es un nuevo servidor web de alto rendimiento escrito en Java. Ahora esto se ha implementado en WildFly 8. 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 integración. Esto es extremadamente liviano, con un jar central que tiene un tamaño de 1 MB y un servidor integrado que utiliza menos de 4 MB de espacio de almacenamiento dinámico. Esto es realmente genial.

Reducción de 3 puertos

Dado que está utilizando Undertow, que admite la actualización de HTTP, lo que permitirá multiplexar múltiples protocolos en un solo puerto HTTP. WildFly 8 ha movido casi todos sus protocolos para que se multiplexen en dos puertos HTTP: uno es de administración y el otro es el puerto de aplicaciones. Esto es realmente un gran cambio y un beneficio para los proveedores de la nube (como OpenShift) que ejecutan de cientos a 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).

Control de acceso y auditoría basados en roles de gestión

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

Inicio sesión

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

También podemos utilizar 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.

Agrupación

Una vez más, el gran cambio es una agrupación. Todas las funciones relacionadas con la compatibilidad con la agrupación en clústeres se cambiaron en WildFly 8 y se incluyen a continuación:

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

La configuración CLI también se ha mejorado. Ya sabes, 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 cuando queramos conectarnos a ese servidor usando el comando de conexión.

Todavía hay muchas mejoras y actualizaciones realizadas en WildFly 8. Puede consultarlas todas 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. Instalar JDK/JRE 7u25 en Linux

Paso 1: Descargar WildFly 8

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 utilizar el comando 'wget' para descargar directamente en la línea de comando.

[root@tecmint]# wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

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

[root@tecmint]# cp wildfly-8.0.0.Final.zip /data/
[root@tecmint]# cd /data/
[root@tecmint data]# unzip wildfly-8.0.0.Final.zip

Paso 2: configurar variables de entorno

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

[root@tecmint data]# cd wildfly-8.0.0.Final
[root@tecmint data]# cd bin/

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

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

Paso 3: iniciar WildFly 8

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

[root@tecmint bin]# ./standalone.sh
[root@tecmint 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 se muestra a continuación, estoy iniciando el servidor con 'standalone-full-ha.xml' y este archivo está presente en "$JBOSS_HOME/standalone(profile)/configuration/".

[root@tecmint bin]# ./standalone.sh --server-config standalone-full-ha.xml
Salida de muestra
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)

Paso 4: acceder a WildFly 8

Ahora puede apuntar su navegador a 'http://localhost:8080' (si usa el puerto http configurado predeterminado), lo que lo llevará 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 web.

Paso 5: Administrar WildFly 8

WildFly 8 proporciona dos consolas administrativas para gestionar 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 mediante la línea de comandos, deberá crear un nuevo usuario utilizando 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.

[root@tecmint bin]# ./add-user.sh

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

Salida de muestra
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.

[root@tecmint bin]# cd bin
[root@tecmint 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.

Lea también: WildFly (JBoss AS): cómo acceder y administrar CLI mediante GUI