2017-10-03 4 views
1

J'utilise AWS SQS et Spring JMS dans mon projet. J'ai ma méthode avec @JmsListener (destination = "queue_name"). Je veux utiliser cette file d'attente pour deux types de messages différents.utiliser aws sqs pour différents types de messages

Étant donné que cet écouteur est configuré pour cette file d'attente, il reçoit les deux types de messages. Ce que j'essaye de réaliser est d'ignorer le message d'un type. (L'expéditeur ajoute un MessageAttribute lors de l'envoi de message à la file d'attente). Donc, existe-t-il un moyen de simplement ignorer les messages provenant de l'expéditeur 2 afin que cette méthode ne les traite pas.

En outre, j'ai DLQ défini sur cette file d'attente avec max reçoit comme 5. Si le message n'est pas traité dans les 5 premières tentatives, il est déplacé vers DLQ.

N'hésitez pas à partager votre suggestion.

Merci.

Répondre

2

La bonne solution consiste à utiliser deux files d'attente différentes; SQS ne peut pas filtrer les messages fournis par une propriété, de sorte que, comme vous le voyez, lorsque le client lit le message et ne le traite pas, il finira dans votre DLQ plus rapidement.

Les files d'attente sont libres, donc avoir plusieurs ne coûtera plus.

+0

Merci E.J Brennan pour les contributions, ce que vous avez mentionné dans votre réponse me semble plus logique. J'ai un autre cas d'utilisation où j'ai besoin de vos entrées. Je souhaite notifier l'expéditeur du message une fois le message consommé traité par le consommateur, recommanderiez-vous d'utiliser également le nouveau SQS pour ce cas d'utilisation? S'il vous plaît partager s'il y a une autre manière/approche qui conviendrait le mieux pour ce cas d'utilisation. Merci beaucoup. – user1246979

+1

Vous pouvez informer l'expéditeur soit par un message posté dans une autre file d'attente (l'expéditeur doit surveiller cette file d'attente pour consommer les messages), –

+0

Merci E.J Brennan, apprécie beaucoup vos entrées. – user1246979