2017-06-01 1 views
0

Ich brauche Nachrichten von Kaninchen HA-Cluster über HAProxy zu konsumieren, so wechselte ich zu CacheMode.CONNECTION, wie es in spring-amqp-documentation empfohlen wird. Außerdem muß ich Nachrichten von vielen Warteschlangen verbrauchen, so schaffe ich für jede Warteschlange SimpleMessageListenerContainer mit 4 gleichzeitigen Verbrauchern, und ich habe einige Fragen:Spring RabbitMQ Verbindung und Ressourcenmanagement Probleme

  1. Nach einigen Tests sieht es aus, dass mein Ansatz, weil jedes Mal, nicht effizient ist, wenn eine neue Warteschlange hinzugefügt wird, wird auch der neue SimpleMessageListenerContainer mit 4 Threads erstellt. So könnte ich mehr Warteschlangen für die gegebenesetzen, was effizienter aussieht, aber vielleicht gibt es einen anderen besseren Weg?
  2. Warum, wenn ich auf CacheMode.CONNECTION für jeden Verbraucher in gewechselt habe, wird neue Verbindung erstellt? Kann ich eine Verbindung für alle Verbraucher in einem bestimmten SimpleMessageListenerContainer oder vielleicht wird es nicht empfohlen?
  3. Wie Ausnahme behandeln

    "org.springframework.amqp.rabbit.connection.AutoRecoverConnectionNotCurrentlyOpenException: Auto Recovery-Verbindung ist nicht offen"

    ich es erhielt, wenn man RabbitMQ Knoten Nieder. Auch wenn der Knoten wieder aktiv ist, kann SimpleMessageListenerContainer nicht erneut verbunden werden.

Vielen Dank im Voraus für Hilfe.

Antwort

0
  1. Die kommende Version 2.0 hat eine neue DirectMessageListenerContainer die Threads über Container documentation here teilt. Der Meilenstein 2.0.0.M4 ist jetzt verfügbar. Die GA-Veröffentlichung wird voraussichtlich Mitte Juli sein.

  2. Wenn Sie eine einzelne Verbindung pro Container wünschen, verwenden Sie den Standard-Cache-Modus und eine separate Verbindungsfactory für jeden Container.

  3. Den automatischen Wiederherstellungsmechanismus des Clients deaktivieren; es ist standardmäßig im 4.x-Client aktiviert; Spring AMQP verfügt über einen eigenen Wiederherstellungsmechanismus, der im Allgemeinen schneller wiederhergestellt wird. Seit der Version 1.7.1 Spring AMQP deaktiviert es standardmäßig, es sei denn, Sie konfigurieren Ihre eigene Rabbit ConnectionFactory.

Verwandte Themen