IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Spring batch est-il toujours la bonne solution pour les traitements de masse ?


Sujet :

Spring Java

  1. #1
    Membre du Club Avatar de Zineb2014
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 57
    Points : 45
    Points
    45
    Par défaut Spring batch est-il toujours la bonne solution pour les traitements de masse ?
    Bonjour à tous,

    J'ai un traitement en masse mais un peu complexe ( avec des préparations de données pour insertion dans des tables diverses) ,on m'a conseillé spring batch mais j'ai peur que la complexité des traitements ne favorise l'exploitation de ses performances ?!
    Votre conseil SVP.

  2. #2
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    Bonjour,

    En résumé : oui.

    Pour plus de détails, j'ai participé pendant 2 ans à la migration d'une application de batchs COBOL d'une grande complexité (300'000 lignes de code COBOL, environ 150'000 lignes java après migration sans compter les XML spring batch). Le responsable de la version COBOL, qui est maintenant heureux retraité, doutait fortement de la capacité de Java à rivaliser avec des performances COBOL. Résultat : temps de traitement divisé par deux. Spring Batch est une solution très robuste et ultra performante pour la gestion des batchs.

    Par contre, il faut être très vigilant lors de la réalisation de tels batchs. Il faut toujours penser que la technologie Spring Batch traite les éléments "par chunk" et qu'à aucun moment il ne faut tenter de lire une source de données par un composant qui n'est pas prévu pour. Typiquement, j'ai déjà vu des readers XML utilisé en Spring Batch qui effectuaient une lecture par un simple "load" JAXB. Résultat : le fichier XML entier chargé en une fois -> OutOfMemory. Petit truc quand je développe un batch, je me pose cette question : si mon nombre d'élément en entrée est de l'ordre du milliard et non du million, mon traitement se terminera-t-il un jour ?

    Il faut également être vigilant sur certaines questions comme la gestion de la transaction (notamment, l'utilisation de Web Services, qui ne sont pas des protocoles XA, peuvent poser d'énormes problèmes de consistance des données, expérience personnelle en production). Un autre point à respecter : les traitements coûteux, notamment les IO, doivent TOUS être réalisés en mode "par chunK". Inutile de lire 100 éléments dans un bloc si on écrit en base de données en utilisant une fonction "persist" d'une DAO Hibernate pour chaque objet de la liste.

    Ce mode de traitement complexifie certains traitements. Les tris et les agrégations d'objets sont assez pénibles à réaliser.

    Dernier conseil de ma part : ne pas utiliser Hibernate sur une grappe d'objets complexes. La lecture peut être optimisée, mais je n'ai jamais réussi à écrire suffisamment vite avec cette technologie (stale entities check, ce genre de choses coûtent très cher). Ma dernière expérience en termes de performances : lecture de 50'000 contrats en assurance vie (objets complexes) avec hibernate (en optimisant au max) : 2 minutes. Écriture de ces même contrats avec Hibernate : 4h. Écriture par des requêtes JDBC natives : 10 minutes.
    Always code as if the guy maintaining your application is a violent psychopath!
    Site personnel sur la saga Final Fantasy : http://www.final-fantasy.ch

  3. #3
    Membre du Club Avatar de Zineb2014
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 57
    Points : 45
    Points
    45
    Par défaut
    Merci Lordsephiroth.

  4. #4
    Membre habitué

    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Mars 2011
    Messages : 115
    Points : 188
    Points
    188
    Par défaut
    Bonjour,
    Tu peux aussi voir du cote de Talend. Simple et efficace aussi
    Innovation = Blending of idea , science and practice engineering

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/11/2015, 19h44
  2. solution pour les sauvegardes RMAN
    Par fouad77fr dans le forum Recovery Manager
    Réponses: 3
    Dernier message: 05/06/2007, 18h09
  3. Réponses: 2
    Dernier message: 03/06/2007, 02h30
  4. solution pour les apostrophes?
    Par pouss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/04/2006, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo