2017-05-04 9 views
0

Bei einem kürzlich vorgenommenen Upgrade auf den RabbitMQ-Server ändert sich die Anzahl der Vorabrufe, die für einen Benutzer im Admin-Steuerfeld gemeldet wurden.Worin besteht der Unterschied zwischen der Anzahl der Kanalvorabrufe und der Anzahl der Vorababrufvorgänge für Benutzer?

Worin besteht der Unterschied zwischen der Anzahl der Kanalvorabrufe und der Anzahl der Vorabrufe für Consumer, wie unten dargestellt?

enter image description here

Wir laufen ein Set-up, wo wir mehrere Threads haben einen einzelnen Verbraucher/Kanal raubend ab. Wir erlauben es, die Anzahl der Threads und Prefetch-Zähler im laufenden Betrieb anzupassen. Welche Kombination von Parametern zum Model.BasicQos(prefetchLength, prefetchCount, global); Aufruf auf dem C# -Client sollten wir verwenden?

Antwort

3

Grundsätzlich Prefetch bedeutet in beiden Fällen (maximal zulässige) Anzahl nicht quittierter Nachrichten, pro Kanal oder pro Verbraucher. Überprüfen Sie here unter Titel Channel Prefetch Einstellung (QoS). Wichtig bei Kanal Prefetch zu beachten (Ich werde gerade von oben genanntem Link zitieren)

Sobald die Anzahl der konfigurierten Zahl erreicht, wird RabbitMQ stoppen auf dem Kanal mehr Nachrichten zu liefern, wenn mindestens eine der ausstehenden Einer ist anerkannt.

so keine Nachrichten mehr an einen der Verbraucher auf diesem Kanal!

Nizza Beispiele auf, welche Zahlen bedeuten, was und was passiert, wenn beide der Prefetch-Werte eingestellt werden können here gefunden werden, so wirklich, was Sie für die Werte in Ihrem Fall müssen willkürlich ist, sondern hängt natürlich von verschiedenen Faktoren wie: Häufigkeit von Veröffentlichung, Größe der Nachrichten, Anzahl der Verbraucher usw.

In dem Screenshot scheint es, dass Ihr Prefetch Consumer größer ist als Channel Prefetch. Jetzt weiß ich nicht, was das Web-Management ui meldet, und wie rabbitmq oder die C# -Bibliothek das handhaben, aber ich würde sagen, dass basierend auf dem, was in der Dokumentation geschrieben wird, die Consumer Prefetch-Zählung weniger oder gleich dem Channel-Prefetch sein kann zählen (ich meine natürlich, wenn es tatsächlich in der Laufzeit verwendet wird, nicht zu deklarieren).

+0

Ich glaube nicht, dass wie Beispiele zeigen den Unterschied zwischen prefetch_Größe und prefetch_count – user48956

+0

@ user48956 hat, weiß ich nicht, was du meinst von prefetch_Größe – cantSleepNow

+0

https://github.com/pika/pika/blob/master/pika /channel.py#L427 - obwohl ich jetzt merke, dass ich zur falschen Frage gekommen bin. Ich bin verwirrt über den Unterschied zwischen prefetch_size und prefetch_count. Die Dokumente lassen mich denken, dass einer kanalbezogen ist und der andere Zusammenhang, aber es ist sehr unklar. – user48956

Verwandte Themen