Question

Y at-il de bonnes pratiques pour le traitement des messages ou des demandes / réponses portant sur d'énormes quantités de données (Mégaoctets? GBytes?) Via un middleware ou un système EAI, assunming que les transports de middleware, mais ne traite pas les énormes blobs de données?

  • Transport des données avec le message afin de maintenir la cohérence, mais probablement plusieurs fois copie d'énormes quantités de données entre les systèmes

  • Conserver les données dans un référentiel de stockage ou de données (système de fichiers, base de données, ...) et transporter une référence aux données, mais perdre la fin de couplage entre le message et les données

Quelle est la solution commune à ce problème? Comment cela est pris en charge par EAI ou des produits middleware?

Était-ce utile?

La solution

Dans mon expérience, il est bon de limiter la taille des messages. Dans les environnements que je connais (Websphere MQ, SonicMQ) je l'ai trouvé 5-10 Mo une bonne valeur pour la plupart des messages. Dans de nombreux cas, il ne sera pas mal d'avoir très peu de messages avec des tailles jusqu'à 100 Mo -> mais vous devrez penser à la consommation de mémoire, .... Dans la plupart des API de messagerie, JMS en particulier, vous aurez au moins complètement le message en mémoire une fois, ce qui peut vous causer des maux de tête lors du démarrage de traitement parallèle.

Il y a deux choses que nous utilisons comme solution de contournement:

Normalement, nous utilisons la première solution à chaque fois que les messages contiennent des données structurées, le second est utilisé dans les cas de la distribution des médias.

Pour la première solution, nous ne aussi tendance à ne pas utiliser fournit des solutions spécifiques, mais mettre en œuvre cette logique dans notre implémentation personnalisée -. Nous sommes pas liés à un système de messagerie spécifique

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top