Cargue una imagen de aplicación en la consola de Container Service for Kubernetes (ACK) y conecte la aplicación a XXL-JOB. Esto le permite programar trabajos y realizar el sharding de trabajos de manera eficiente.
Requisitos previos
El usuario de RAM tiene los permisos obligatorios sobre XXL-JOB. Para obtener más información, consulte XXL-JOB authorization.
Se creó una instancia de XXL-JOB. Para obtener más información, consulte Create an instance.
Descripción general
Esta solución proporciona un ejemplo sobre cómo desplegar una imagen en un contenedor mediante ACK Serverless o Serverless App Engine (SAE) para desarrollar e implementar una aplicación, conectarla a XXL-JOB y luego probar la conexión mediante trabajos independientes y de difusión por sharding. En este ejemplo se utiliza la imagen de aplicación de demostración proporcionada por XXL-JOB, lo cual facilita la comprensión del uso y la configuración de XXL-JOB. Para implementar esta solución, realice los siguientes pasos:
Crear una aplicación: Cree una aplicación en XXL-JOB para gestionar los trabajos de forma centralizada. Esto permite consultar, configurar y programar trabajos con facilidad, además de mejorar la eficiencia en su gestión.
Desplegar un proyecto de demostración en un contenedor: Despliegue y escale rápidamente la imagen de demostración mediante ACK Serverless o SAE.
Realizar pruebas y verificaciones: Compruebe que los trabajos de la aplicación conectada se pueden programar y gestionar automáticamente en XXL-JOB, y que se ejecutan en el momento especificado.
Paso 1: Crear una aplicación
Inicie sesión en la consola de MSE y seleccione una región en la barra de navegación superior.
En la página que aparece, haga clic en el ID de su instancia para ir a la página de detalles de la instancia. En dicha página, haga clic en en el panel de navegación izquierdo. En la página que se muestra, haga clic en CreateApplication. En el panel CreateApplication, configure los parámetros AppName y Name, haga clic en Automatic Generation para AccessToken a fin de obtener un token de acceso y, a continuación, haga clic en OK.
Paso 2: Desplegar un proyecto de demostración en un contenedor
XXL-JOB proporciona la siguiente imagen de aplicación de demostración pública: registry.cn-hangzhou.aliyuncs.com/schedulerx/xxljob-demo:2.4.1. Utilice uno de los siguientes métodos para desplegar la aplicación de demostración y conectarla a XXL-JOB.
Asegúrese de que el clúster donde se despliega la aplicación resida en la misma virtual private cloud (VPC) que la instancia de XXL-JOB, y que las reglas de entrada del security group al que pertenece el nodo de la aplicación permitan el acceso desde los bloques CIDR de la VPC.
ACK Serverless
-
Inicie sesión en la consola de ACK. En la página Clusters, haga clic en Create Kubernetes Cluster. En la pestaña ACK Serverless de la página de compra, seleccione Configure SNAT for VPC para facilitar la extracción de imágenes. Omita esta operación si ya configuró SNAT para la VPC.
En la página que aparece, haga clic en en el panel de navegación izquierdo. A continuación, localice la aplicación deseada y haga clic en Access Configuration en la columna Operation.
-
En la página Clusters de la consola de ACK, haga clic en el nombre del clúster creado. En el panel de navegación izquierdo, elija . En la página Deployments, haga clic en Create from YAML. En este ejemplo se utiliza Access Method 2 y se reinicia la aplicación mediante el parámetro -D. Copie el código proporcionado por el método de acceso y reemplace el valor de la variable de entorno JAVA_OPTS con el código copiado.

apiVersion: apps/v1 kind: Deployment metadata: name: xxljob-demo labels: app: xxljob-demo spec: replicas: 2 selector: matchLabels: app: xxljob-demo template: metadata: labels: app: xxljob-demo spec: containers: - name: xxljob-executor image: registry.cn-hangzhou.aliyuncs.com/schedulerx/xxljob-demo:2.4.1 ports: - containerPort: 9999 env: - name: JAVA_OPTS value: >- -Dxxl.job.admin.addresses=http://xxljob-xxxxx.schedulerx.mse.aliyuncs.com -Dxxl.job.executor.appname=xxxxx -Dxxl.job.accessToken=xxxxxxx
SAE
Inicie sesión en la consola de SAE y elija en el panel de navegación izquierdo. En la página Applications, haga clic en Create Application para crear una aplicación.
-
Configure la información básica de la aplicación. Seleccione un namespace existente, así como un vSwitch y un security group en la VPC asociada al namespace. Haga clic en Specify Image en la sección Application Deployment Method. En el panel Specify Image, introduzca la siguiente URL de la imagen de demostración en la pestaña Custom Image:
registry.cn-hangzhou.aliyuncs.com/schedulerx/xxljob-demo:2.4.1. A continuación, haga clic en OK.ImportanteEl namespace que seleccione debe estar asociado a la VPC donde reside la instancia de XXL-JOB.
En el paso Advanced Settings, configure la variable de entorno JAVA_OPTS.
Obtenga el valor de la variable de entorno mediante las siguientes operaciones:
Inicie sesión en la consola de MSE y seleccione una región en la barra de navegación superior. En la página XXL-JOBVersion, localice la instancia a la que desea conectar la aplicación y haga clic en su ID. Aparecerá la página de detalles de la instancia. En el panel de navegación izquierdo, haga clic en Application Management. En la página que se muestra, busque la aplicación creada y haga clic en Access Configuration en la columna Operation. En este ejemplo se utiliza Access Method 2. Copie el código proporcionado por el método de acceso y utilícelo como valor de la variable de entorno JAVA_OPTS.

Haga clic en Create Application with One Click. La aplicación se crea en la consola de SAE.
Paso 3: Realizar pruebas y verificaciones
1. Comprobar ejecutores
En la página de detalles de la instancia de la consola de MSE, haga clic en Application Management en el panel de navegación izquierdo. En la página Application Management, localice la aplicación desplegada y haga clic en el valor de la columna Number of actuators para consultar la dirección IP y el estado en línea de cada ejecutor.

2. Probar trabajos
La imagen de demostración contiene el código para probar trabajos, incluido el JobHandler de diferentes tipos de trabajos:
JobHandler de trabajos independientes: helloworld
JobHandler de trabajos de difusión por sharding: shardingJobHandler
Trabajo independiente
Un trabajo independiente se ejecuta de forma idempotente en un ejecutor seleccionado según la política de enrutamiento.
-
En la página de detalles de la instancia, haga clic en Task Management en el panel de navegación izquierdo. En la página que aparece, haga clic en Create Task. En el paso Basic configuration del panel Create Task, configure los parámetros Task Name y jobhandler Name, seleccione la aplicación desplegada en la lista desplegable Associated Applications, establezca el parámetro Routing Policy en Polling y, a continuación, haga clic en Next step.

-
En el paso Timing Configuration, establezca el parámetro Time Type en cron y haga clic en Using the Build Tool para generar una cron expression. En este ejemplo, el trabajo se ejecuta una vez al día a las 12:00. A continuación, haga clic en Next step.

-
En el paso Notification Configuration, configure alertas para tiempo de espera de ejecución agotado, ejecución exitosa y error de ejecución, y especifique los métodos de notificación y los contactos de alerta. En este ejemplo se utilizan las configuraciones predeterminadas de la consola.

-
Una vez creado el trabajo, localícelo en la página Task Management y haga clic en Run once en la columna Operation. En el cuadro de diálogo Perform tasks manually, seleccione la máquina donde desea ejecutar el trabajo, introduzca los parámetros de la instancia y haga clic en OK.

-
Localice el trabajo en la página Task Management y elija en la columna Operation para consultar los registros de ejecución del trabajo.
-
En la página de detalles de la instancia, haga clic en Execution List en el panel de navegación izquierdo. En la página que aparece, localice el registro de ejecución que desea consultar y haga clic en Log en la columna Operation para ver los registros de la ejecución del trabajo.

Trabajo de difusión por sharding
Un trabajo de difusión por sharding se ejecuta en todos los ejecutores de la aplicación, y a cada ejecutor se le asigna un número de shard único. Este tipo de trabajo es adecuado para el procesamiento por lotes distribuido. A diferencia de la versión de código abierto de XXL-JOB, que no admite la función de agregación, XXL-JOB agrega y muestra la ejecución de un trabajo de difusión por sharding en cada shard.
-
En la página de detalles de la instancia, haga clic en Task Management en el panel de navegación izquierdo. En la página que aparece, haga clic en Create Task. En el paso Basic configuration del panel Create Task, configure los parámetros Task Name y jobhandler Name, seleccione la aplicación desplegada en la lista desplegable Associated Applications, establezca el parámetro Routing Policy en Multipart Broadcast y, a continuación, haga clic en Next step.

-
En el paso Timing Configuration, establezca el parámetro Time Type en cron y haga clic en Using the Build Tool para generar una cron expression. En este ejemplo, el trabajo se ejecuta en el minuto 10 de cada hora. A continuación, haga clic en Next step.

-
En el paso Notification Configuration, configure alertas para tiempo de espera de ejecución agotado, ejecución exitosa y error de ejecución, y especifique los métodos de notificación y los contactos de alerta. En este ejemplo se utilizan las configuraciones predeterminadas de la consola.

-
Una vez creado el trabajo, localícelo en la página Task Management y haga clic en Run once en la columna Operation. En el cuadro de diálogo Perform tasks manually, seleccione una o más máquinas donde desee ejecutar el trabajo, introduzca los parámetros de la instancia y haga clic en OK.

-
Localice el trabajo en la página Task Management y elija en la columna Operation para consultar los registros de ejecución del trabajo.
-
En la página de detalles de la instancia, haga clic en Execution List en el panel de navegación izquierdo. En la página que aparece, localice el registro de ejecución que desea consultar y haga clic en Details en la columna Operation. En el panel Scheduling Details, consulte los detalles de ejecución en cada máquina en la pestaña Slice Details.

-
Localice un shard y haga clic en Log en la columna Operation para consultar los registros de la ejecución del trabajo correspondientes a dicho shard.
