J'ai l'intention d'utiliser AMQP pour permettre à une collection distribuée de machines de rapporter à un emplacement central de manière asynchrone. L'idée est de déposer des messages dans la file d'attente et de permettre à l'entité centrale de journalisation de traiter la file d'attente de manière découplée; le 'processus' consiste simplement à créer ou mettre à jour une ligne dans une table de base de données.Implémentation de la priorité des messages dans AMQP
Un problème que je prévois est l'effet de la gigue du réseau dans le processus faire la queue message - ce qui se passe si un update
est accidentellement devant un insert
parce que le temps entre les deux messages émis est inférieure à la gigue réseau ?
En lisant la spécification AMQP, il me semble que je pourrais juste appliquer une priorité plus élevée à insert
s afin qu'ils sautent la file d'attente et soient traités en premier. Mais probablement ceci ne s'applique que si une file d'attente existe réellement chez le courtier à ignorer. Existe-t-il un moyen d'imposer un tampon ou un délai au courtier pour absorber cette gigue et permettre que la priorité soit donnée avant que les messages soient transmis au (x) consommateur (s)? Ou dois-je descendre la route d'un resequencer as ActiveMQ suggests?
Merci Holger. Quand vous dites "les messages du même éditeur seront toujours commandés" - est-ce que cela dépend de la mise en œuvre d'AMQP en cours d'utilisation? – Matt
Je pense que cela fait partie de la spécification - tout le reste serait très surprenant. Devrait être facile à trouver. –