RabbitMQ comment limiter la consommation
Je suis à l'aide de RabbitMQ avec succès. Cependant, j'ai un problème où si je suis dans la situation où il y a beaucoup de messages dans la file d'attente, puis le consommateur (service Windows) essaie de les amener tous et puis juste détient sur eux, mais jamais les actions ou les reconnaît.
Lorsque le nombre de messages dans l'état prêt est faible, les consommateurs traiter avec le débit d'amende, c'est juste si il y a eu un problème et il y a un carnet de commandes puis il est bien trop gourmand.
Est-il un moyen de configurer le nombre maximal de messages qu'un consommateur va essayer et prendre en charge, à un moment donné?
Je peux voir la RequestedChannelMax
champ sur RabbitMQ.Client.ConnectionFactory
est que le réglage correct pour limiter cela?
Grâce
Vous devez vous connecter pour publier un commentaire.
Un consommateur, par défaut, lire autant de messages que la bande passante peut gérer sans tenir compte du message du temps de traitement par le consommateur.
Vous devez définir le prefetch valeurs en modifiant la Qualité de Service (QoS) de la manche à limiter le nombre de messages qu'il va essayer de ramasser en une seule fois. Découvrez de base.qos ici. Il dispose de 3 paramètres, une taille (en octets), un nombre (le nombre de l'ensemble des messages qu'il va ramasser en une seule fois) et un indicateur global.
Ce blog est une lecture intéressante si vous êtes intéressé par l'optimisation de débit et parle de pré-chargement environ les 2/3 du chemin en bas de la page.
Espère que ça aide!
_model.BasicQos(0,100,false);