J'ai un problème de synchronisation du traitement de plusieurs threads sur plusieurs serveurs différents pour un service Java sous Windows.Java: synchronisation des threads sur plusieurs serveurs
Dans cette application, plusieurs messages d'extraction de threads grand public sont extraits de la même file d'attente JMS. Les messages arrivent en groupes de 3 ou 4, et je dois m'assurer que les messages dans chaque groupe sont traités complètement en série. J'ai besoin d'une sorte de mécanisme de synchronisation pour m'assurer que si thread1 retire un message, puis thread2 tire le prochain message de ce groupe, thread2 attend thread1 pour terminer le traitement avant de commencer à traiter son message.
Des suggestions sur les mécanismes de synchronisation distribués pour les threads? Tout type de solution serait bon (solutions JMS, mise en cache distribuée, etc.)
Remarque: le fournisseur JMS que nous utilisons est ActiveMQ.
J'ai regardé les brièvement. Savez-vous ce qui se passe avec les groupes de messages si vous créez continuellement de nouveaux groupes? Est-ce que le hachage interne continuerait à croître? Y at-il un moyen de "supprimer" ou "expirer" un groupe, afin que le groupe ne reste pas en mémoire pour toujours? Merci pour la réponse, btw. –
Vous pouvez fermer des groupes de messages (c'est détaillé sur la page que j'ai liée). Cependant, je ne suis pas sûr de la création de nouveaux groupes, c'est probablement pour vérifier comment cela se fait directement à la source. – andri