2016-09-30 6 views
0

Wir haben eine Java-Anwendung, die Nachrichten von Rabbitmq mit Spring AMQP erhält. Bei einigen Warteschlangen nimmt die Anzahl der Verbraucher nicht zu, was zu einer langsameren Nachrichtenübermittlungsrate führt. z.B. obwohl der maximale Verbraucher auf 50 eingestellt ist, blieb die Anzahl der Verbraucher für die meiste Zeit 6 für die Last von 9000 Nachrichten.RabbitMQ-Konsumenten addieren sich nicht

Dies ist jedoch bei anderen Warteschlangen nicht der Fall. i..e Verbraucher zählen bis 35 für andere Warteschlangen erreicht.

Wir verwenden die setMaxConcurrentConsumers-API von SimpleMessageListenerContainer zum Festlegen von maximalen Konsumenten.

Kann mir bitte jemand helfen, das zu verstehen?


Konfiguration:
Anzahl der gleichzeitigen Verbraucher: 4
Anzahl von max gleichzeitige Verbraucher: 50

Antwort

0

Wenn Fragen wie diese zu fragen, müssen Sie immer Konfiguration zeigen. Bearbeiten Sie Ihre Frage mit vollständigen Details.

Es hängt von Ihrer Konfiguration ab. Standardmäßig wird ein neuer Benutzer nur einmal alle 10 Sekunden hinzugefügt, und nur dann, wenn ein vorhandener Kunde 10 Nachrichten ohne Lücken erhält.

Wenn diese Frage immer noch nicht beantwortet wird, aktivieren Sie die DEBUG-Protokollierung. Wenn Sie es nicht herausfinden können, posten Sie das Protokoll (mindestens startConsumerMinInterval Millisekunden) irgendwo wie Pastebin oder Dropbox.

+0

Danke für deine Antwort Gary! Ich habe die Frage mit der von uns verwendeten Konfiguration aktualisiert. Wenn sich 9000 Nachrichten in der Warteschlange befinden, sollten nicht mehr Nutzer hinzugefügt werden, um die Nachrichtenzustellungsrate zu erhöhen? Bei 6 Verbrauchern betrug die Lieferrate 0,60/s. Können wir davon ausgehen, dass jeder Verbraucher mit 0,10/s (1msg/10sec) geliefert hat? Damit wurden die Nachrichten in der Warteschlange angehäuft. Wie auch immer, ich werde versuchen, dieses Szenario mit DEBUG level auf zu reproduzieren. –

Verwandte Themen