Maximiser le débit avec RabbitMQ
Dans notre projet, nous voulons utiliser le RabbitMQ dans "Files d'attente de Tâches" modèle pour transmettre des données.
Sur le producteur côté, nous construisons un peu de serveur TCP(en node.js) à recv
haute simultanées de données et de les envoyer à la MQ sans rien faire.
Du côté du consommateur, nous utilisons JAVA client pour obtenir les données de la tâche de
MQ, de la gérer et puis accusé de réception.
La question est donc:
Pour obtenir le maximum de transmission de message de débit/de performance( Par exemple, de 400 000 msg/seconde) , le nombre de files d'attente est le meilleur? Ne fait que de plus en plus de file d'attente signifie un meilleur rendement/performance? Et est-il autre chose que je devrais avis?
Toute guide des meilleures pratiques pour l'utilisation de RabbitMQ dans un tel scénario?
Tous les commentaires sont très appréciés!!
Vous devez vous connecter pour publier un commentaire.
Pour de meilleures performances dans RabbitMQ, suivez les conseils de ses créateurs. À partir de la RabbitMQ blog:
Si vous voulez vraiment creuser profondément dans la performance de RabbitMQ files d'attente, ce autre entrée de blog de leur va dans les données beaucoup plus loin.
Selon une réponse une fois, j'ai eu de la rabbitmq-discuter de groupe de diffusion il y a d'autres choses que vous pouvez essayer d'augmenter le débit et réduire le temps de latence:
Vous permettra d'augmenter le débit avec une plus grande prefetch comte ET dans le même temps accusé de réception de plusieurs messages (au lieu d'envoyer un accusé de réception pour chaque message) à partir de votre consommation.
Mais, bien sûr, ACK avec de multiples drapeau (http://www.rabbitmq.com/amqp-0-9-1-reference.html#basic.ack) nécessite de la logique supplémentaire sur votre application consommateur (http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-August/029600.html). Vous devez conserver une liste de livraison-tags des messages livrés par le courtier, leur statut (si votre demande est traitée ou non) et l'accusé de réception, tous les N-ème livraison-tag (NDTAG) lorsque tous les messages avec la livraison balise inférieure ou égale à NDTAG ont été traités.