file d'attente de messages java ou fichier lu manuellement


Nous avons des instances Java séparées qui traitent le weblog brut comme ça:

jvm instance 1 read fileA --> process
jvm instance 2 read fileA ---> process
jvm instance 3 read fileA ---> process
....

Je pense que lorsque le nombre d'instances jvm augmente , le nombre de processus disk IO augmentera. Et il arrive un moment où cette solution ne peut pas fonctionner correctement.

Alors quelqu'un peut-il me dire une autre solution for reduce the disk IO.

Je pense qu'un idéal est d'utiliser un serveur JMS (comme Apache ActiveMQ) pour lire le fichier d'un magasin dans la file d'attente et le processus.

Avez-vous un problème si j'utilise JMS ???

S'il vous plaît de bien vouloir m'aider.

Author: tnk_peka, 2012-07-26

1 answers

La solution événementielle est certainement une bonne option ici, donc JMS serait probablement une bonne solution.

Mais vous devez garder à l'esprit que si vos consommateurs ne suivent pas le producteur et que vous utilisez la livraison persistante, les messages seront stockés sur votre disque dur et cela provoquera des entrées / sorties de disque. Mais je pense que ce ne sera pas un problème, car vous pouvez toujours augmenter le nombre de consommateurs simultanés, ou même utiliser cluster (qui est vraiment facile à configurer avec ActiveMQ par exemple) pour suivre avec la charge.

Pour résumer, je pense que JMS serait une excellente solution à votre problème, car vous n'aurez pas besoin d'interroger activement le système de fichiers pour les modifications et il est vraiment facile de mettre à l'échelle votre application de traitement.

Si vous êtes intéressé par le sujet de l'intégration, vous pouvez visiter enterprise integration site et lire un très bon livre de Gregor Hohpe et Bobby Woolf sur ce sujet. Vous pouvez trouver un lien vers le site mentionné. Vous y trouverez tous les avantages et les inconvénients des deux approches ainsi que vous familiariser avec les autres disponibles. De toute façon la messagerie est certainement la voie à suivre.

Vous pouvez envisager d'utiliser camel framework comme implémentation des modèles mentionnés.

 2
Author: Taras Tsugrii, 2012-07-26 09:29:52