SQS vs RabbitMQ
J'ai besoin de créer une file d'attente pour le traitement. La file d'attente est relativement faible volume. Il y a peut être d'environ 1 000 écrit par heure. L'exécution de chaque tâche peut prendre environ une minute chacune, et sont traitées presque dès que l'élément est ajouté à la file d'attente.
Est-il une raison que j'aimerais mettre en œuvre RabbitMQ au lieu de quelque chose de hors-the-shelf comme Amazon SQS? Quelles sont certaines des raisons pour lesquelles une demande doit disposer de sa propre file system au lieu de quelque chose comme SQS?
- 1000 écrit par heure est fine. Si vous avez le temps et une connaissance suffisante, alors exécuter RabbitMq instance par vous-même, il permet d'économiser de l'argent si on compare avec Amazon SQS service. Pour SQS, il était juste là. C'était pratique, simple et assez rapide à code.
Vous devez vous connecter pour publier un commentaire.
Pour commencer, Amazon SQS est un pseudo-file d'attente qui signifie que la livraison de chaque message(si elle parvient à la file d'attente) est garanti, mais pas dans une FIFO de la mode qui se produit habituellement dans une file d'attente.
Si l'ordre des messages est important pour vous et que vous voulez la file d'attente pour travailler dans une FIFO de la mode, la Amazon SQS états de documentation pour gérer cela dans la logique de l'application que les messages de la Amazon SQS vous en dehors de la séquence.
Par rapport à cela, autant que je sache, vous pouvez mettre en œuvre travailleur files d'attente dans RabbitMQ. Si cela vous débarrasse de la mise en œuvre de la file d'attente de message de séquençage au niveau de la demande alors ce serait un plus d'option préférable.
Voici quelques éléments pour vous aider à décider lequel d'aller pour:
File d'attente de séquence de message comme mentionné ci-dessus.
Vous pouvez configurer votre propre serveur RabbitMQ, mais pas dans le cas d'Amazon SQS de sorte que le coût est impliqué ici.
De configurer votre propre serveur nécessite une bonne connaissance du sujet, de sorte que vous ne laissez pas n'importe quel coin intact. Ce n'est pas le cas avec Amazon SQS comme il est assez rapide pour commencer avec.
Votre propre serveur RabbitMQ signifie des coûts de maintenance sur la ligne qui n'est pas le cas avec Amazon SQS.
Mises à jour:
SQS serait ma préférence plus de RabbitMQ, voici pourquoi.
Cependant RabbitMQ pourrait fournir des temps de réponse plus rapides pour les options de vente et obtient, généralement en 10s de milliers de TPS de mes tests. Pour SQS pour fournir ce genre de débit, vous aurez à l'échelle jusqu'à l'horizontale avec plusieurs instances. Donc, si vous êtes à la recherche pour les moins de 5ms met , RabbitMQ peut-être une option à considérer, car j'ai vu près de 20ms-30ms de mettre du temps à partir de mon SQS tests à 1000s de TPS, ce qui est légèrement supérieur RabbitMQ.
On a juste déplacé notre infrastructure de messagerie de ActiveMQ à SQS et ne peut pas être plus heureux. Nous avons trouvé que c'était moins cher que le maintien de notre propre ActiveMQ cluster dans le cloud.
Espérons que cette aide! Laissez-nous savoir comment il va..