Wir verwenden SimpleMessageListenerContainer mit (max) Consumer Count als 75. Wir haben einen Anwendungsfall, wo wir einige Warteschlangen dynamisch abonnieren und abmelden müssen, so dass wir addQueueNames() und removeQueueNames verwenden(). Wenn die Anzahl der Kunden bei 75 liegt, dauert die addQueueNames() -Methode ungefähr 15 Sekunden. Wir haben derzeit etwa 200 Warteschlangen. Wir wollten sehr oft Warteschlangen hinzufügen und entfernen, also haben wir andere Möglichkeiten diese Zeit zu reduzieren?Mit addQueueNames auf SimpleMessageListenerContainer dauert mehr Zeit
Antwort
Wenn Warteschlangen hinzugefügt oder entfernt werden, müssen wir derzeit die aktuellen Benutzer abbrechen und aus der neuen Warteschlangenliste erneut konsumieren.
Die Funktion wurde nicht wirklich für schnelle Änderungen an der Warteschlangenliste entwickelt, insbesondere bei einer großen Anzahl solcher Warteschlangen.
Sie werden wahrscheinlich feststellen, dass die Dinge etwas leistungsfähiger sind, wenn Sie eine Anzahl von Containern mit jeweils einer Teilmenge der gesamten Warteschlangenliste verwenden, um zu vermeiden, dass alle Verbraucher für jede Änderung aufgewühlt werden.
Für 2.0 (im nächsten Jahr, aber wir werden wahrscheinlich einen Meilenstein im Herbst haben out) haben wir eine komplette Neufassung des Zuhörers Behälter planen Vorteil einiger Änderungen in der rabbitmq Client-Bibliothek zu nehmen see this answer und die associated JIRA issue für einige Mehr Informationen.
Wir könnten wahrscheinlich die Warteschlange als Teil dieser Umschreibung effizienter machen; Fühlen Sie sich frei, einen Kommentar zum JIRA hinzuzufügen, damit wir es nicht vergessen.
Danke @GaryRussell. Ich habe das Jira-Problem kommentiert. – Kot
'2.0' für Spring-Boot ist jetzt bereit? –
2.0.0.M2 (Meilenstein 2) ist jetzt verfügbar; M3 wird nächste Woche veröffentlicht, die endgültige Veröffentlichung wird im Sommer (derzeit Juni) sein. –