Alternative à JAXB pour analyse XML
Je suis actuellement en utilisant JAXB pour parser des documents XML, cependant j'ai besoin d'une meilleure performance processeur XML.
Mieux = plus Rapide et la diminution de l'empreinte mémoire.
J'ai à traiter, littéralement, des millions de séparer les documents XML.
Je suis à l'aide de websphere application server v7 et java 6.
J'ai lu Stax est le chemin à parcourir via JAXP, mais ensuite j'ai lu des articles disant JAXP est obsolète.
Si c'est vrai, ce sont mes althernatives efficacement à traiter des millions de XML doucments (chaque document XML est beteen 5 ko - 10 ko) sans causer de mes serveurs d'applications à des cas de collision avec des problèmes de mémoire.
Vrai, cependant lors de l'exécution de 600 tps de traitement, littéralement, des millions de malheureux 5 ko à 10kb XML docs, qui ne deviennent un problème
À ce rythme: êtes-vous sûr de conserver les données en millions de fichiers XML est le meilleur des meilleurs? Même le système d'exploitation va être embourbé avec les demandes d'accès au fichier. En tant que Marque l'indique, étudier où le goulot d'étranglement est vraiment.
Nous obtenons XML à partir de la messagerie, d'un système tiers, pas les fichiers
Alors, quelle est la relation d'une "transaction" (l'un des 600 par seconde) pour les millions de personnes? Quand les messages arrivent? Besoin de les stocker en tant que données XML? (Peut-être une mauvaise décision.) -- Cela devient très boueux en effet. L'esprit du dessin d'une image claire de la façon dont tout cela se connecte?
OriginalL'auteur Hector | 2014-07-19
Vous devez vous connecter pour publier un commentaire.
Je pense que tout d'abord, vous devez suivre les problèmes de mémoire. Combien de ces XML sont maintenues en mémoire simultanément, est-il possible de ne garder qu'une (ou au moins une quantité assez faible de XMLs) dans la mémoire en même temps?
Sur les serveurs Java processus prend habituellement au moins 1 go de mémoire donc ce n'est pas vraiment clair si l'analyse XML est quelque chose qui vous fait échec du processus.
Donc, je crois vraiment que vous devriez travailler avec un profiler ici, avant d'en arriver à des conclusions que l'analyseur XML qui doit être changé.
Il y a beaucoup d'analyseurs de là,
Vous pouvez essayer de woodstox qui est un stax analyseur.
Une autre option peut être xstream
Si vous êtes à la recherche de quelque chose qui ressemble à JAXB, vous pourriez vouloir essayer un Simple analyseur XML
Bas de ligne je crois que vous devez d'abord comprendre d'où vient le problème existe pas, et si vous le résoudre, les chances sont que vous n'aurez pas besoin de passer à un autre cadre à tous les
Je comprends jaxb est mauvais, je veux quelque chose de mieux qui peut faire face à ma charge de travail
Comment voulez-vous comprendre que JAXB est mauvais?
son la seule chose qui l'A hébergé code ne. MDB lit XML MQ message, unmarshall puis de l'envoyer sur d'autres MQ message, routage de la MQ des messages en aval est basé sur le contenu XML. Les serveurs qui ne le font SEULEMENT JAXB de traitement.
OriginalL'auteur Mark Bramnik
Vous pouvez utiliser Groovy dans Java pour lire les données xml. Créer une classe Groovy au sein de votre source Java dir si vous utilisez maven
et utiliser Groovy parseur xml à parser l'analyse ou l'autre classe pour écrire du XML. Il est beaucoup plus facile avec Groovy à marcher à travers le xml.
Vous pouvez appeler le Groovy classe comme une classe Java à l'intérieur de votre programme Java comme Groovy compile les fichiers de classe Java
Pour ce faire via maven utilisation
OriginalL'auteur Alex Punnen