Spring Boot dieselben Broker-Nachrichten, die zur Konsole wiederholt werden

8

Ich arbeite gerade an einem Spring Boot-Projekt, dieser Text wird 30 Sekunden lang sekündlich auf die Konsole gedruckt, bevor er aufhört.

%Vor%

Das Projekt funktioniert immer noch gut, es ist nur nervig. Wer weiß, warum das passieren würde?

    
Jordan 28.05.2015, 04:33
quelle

4 Antworten

8

Ich kann nicht ausführlich erklären, warum das passiert, aber es hat etwas damit zu tun, wie ConnectionFactory automatisch konfiguriert wird.

Eine Möglichkeit, diesen konstanten Neustart des eingebetteten Brokers zu umgehen, besteht darin, das Pooling in Ihrem application.properties :

zu aktivieren %Vor%

Um dies zu verwenden, müssen Sie auch die folgende Abhängigkeit zu Ihrem pom.xml hinzufügen:

%Vor%

Ich habe einige Dokumente durchforstet und schließlich gefunden

Am Ende der Seite steht:

  

Verwenden von ActiveMQConnectionFactory
  ...
  Der Broker wird beim Erstellen der ersten Verbindung erstellt.
  ...

Auch dies erklärt nicht vollständig, was vor sich geht, aber ich habe aufgehört zu graben, nachdem ich festgestellt habe, dass das Aktivieren des Poolings dieses Verhalten verhindert hat.

    
ci_ 28.05.2015, 09:10
quelle
1

Hat das selbe Problem gelöst, aber die angenommene Antwort hat nicht geholfen. den Thread mit Erklärung

  

ActiveMQ wird eine In-Memory-Warteschlange nur dann aktiv halten, wenn sich etwas daran festhält.

     

Wenn die Warteschlange im Frühjahr eingerichtet wurde, um die Warteschlange nicht zwischenzuspeichern, wird ActiveMQ den Connector weiterhin starten / stoppen. Ein voller Anwendungsserver würde Queues in einem Pool effektiv zwischenspeichern und so am Leben erhalten.

     

Stock   in der Bean def für den Spring JMS-Container (org.springframework.jms.listener.DefaultMessageLi stenerContainer), um das Problem zu beheben.

%Vor%     
StanislavL 29.05.2017 14:37
quelle
0

Was ich getan habe, war, explizit einen Broker zu erstellen und Spring zu sagen, dass er es anstelle seines impliziten verwenden soll. Auf diese Weise wird der Broker sicher am Leben erhalten:

%Vor%     
Georg Moser 16.12.2017 11:42
quelle
0

Die angenommene Antwort passte mir nicht, fand eine andere Lösung. Vielleicht wird es hilfreich sein:

Wenn Sie die Anwendung Spring Boot verwenden und nicht PooledConnectionFactory benötigen, fügen Sie diese Zeile zu Ihrer Anwendungsklasse hinzu:

%Vor%

Dies schließt activemq automatische Konfiguration aus und Sie werden diesen Müll in den Protokollen nicht sehen.

    
Alexander Murza 27.02.2018 16:11
quelle

Tags und Links