example - spring tags
Ventajas del lote de primavera (1)
Entendí que Spring Framework Framework procesa los datos en trozos. Sin embargo, estaba pensando que cuando se puede lograr la misma funcionalidad de fragmentación a través de Java, ¿por qué tenemos que ir por el marco de proceso por lotes?
¿Podría alguien avisarme si hay más razones para ir al framework de lotes de primavera?
Permítame reformular un poco su pregunta y ver si esto la aborda.
¿Qué aporta Spring Batch que tendría que manejarme yo mismo cuando construyo una aplicación por lotes?
Spring Batch sirvió como base para JSR-352 (la especificación de lotes de Java) y desde que se emitió esa especificación, ahora hay una gran cantidad de Spring Batch disponible dentro del espacio de Java. Dicho esto, todavía hay mucho que Spring Batch proporciona fuera del alcance de lo que hace Java básico:
Dentro de un trabajo por lotes "básico"
Dentro del alcance de un simple trabajo por lotes, Spring Batch proporciona una colección de utilidades e implementaciones que se han probado en batalla en todas las verticales de la empresa. Algunos ejemplos son:
- Más de 17
ItemReader
deItemReader
y 15ItemWriter
cubren vastas opciones para entrada y salida (Archivo, JDBC, NoSQL, JMS, etc.). Todos estos proporcionan opciones de E / S declarativas para que no tenga que escribir y probar el código para lectores y escritores con estado. - Una colección de
Tasklet
deTasklet
(el equivalente de Spring Batch aTasklet
de JSR-352), incluidas las para ejecutar comandos de shell e interactuar con Hadoop. - La capacidad de detener / iniciar / reiniciar trabajos y mantener el estado entre las ejecuciones.
- La capacidad de omitir y reintentar registros a medida que se procesan.
- Gestión de transacciones. Spring Batch maneja las transacciones por ti.
- La capacidad de notificar a otros sistemas cuando se producen errores a través de mensajes al integrar Spring Integration.
- Configuración basada en Java o XML.
- Todas las características de Spring como DI, AOP, comprobabilidad, etc.
- Independencia del proveedor: al utilizar Spring Batch, puede usar un marco que es de código abierto y no está vinculado a ningún proveedor.
Ventajas adicionales
Más allá de los ejemplos anteriores de lo que Spring Batch trae a la mesa, va mucho más allá:
- Opciones de escalabilidad: Spring Batch proporciona una serie de opciones de escalabilidad que van desde una única JVM a través de subprocesos (paso multiproceso, partición local y divisiones) hasta escalabilidad de múltiples JVM (partición remota y fragmentación remota).
- Integración con Spring Integration: Spring Integration proporciona una serie de elementos útiles que le permiten crear aplicaciones por lotes robustas para manejar cosas como mensajes de error, directorios de poling para archivos, archivos de FTP automático, etc.
- Compatibilidad con Big Data: a través del proyecto Spring para Apache Hadoop, hay varias extensiones de Spring Batch que le permiten funcionar bien con Hadoop. Puede ejecutar trabajos de Spring Batch en YARN, puede ejecutar trabajos de Pig, Hive, MapReduce, etc.
- Integración con Spring XD: Spring XD proporciona un tiempo de ejecución distribuido para la implementación, administración y ejecución de trabajos por lotes.
Personalmente veo el procesamiento por lotes como el modelo de programación "configúrelo y olvídelo". Si bien no es atractivo, el procesamiento por lotes es un modelo de procesamiento muy útil y es más útil en lugares de lo que la mayoría de las personas se dan cuenta. Spring Batch proporciona un entorno que hace que el desarrollo de trabajos por lotes robustos sea lo más fácil posible.