Wir verwenden rabbitmq für Messaging in unserem Projekt. Dies wird hauptsächlich für die Audit-Protokollierung verwendet. Wir haben versucht zu überprüfen, wie unsere App auf bestimmte Fehlerszenarien reagiert. Wenn zum Beispiel RabbitMQ ausfällt, versucht der Verbraucher ständig, eine Verbindung zu rabbitmq herzustellen und schlägt fehl. Gibt es eine Möglichkeit für den Verbraucher aufzuhören dies zu versuchen, wenn Rabbitmq ist unten? Wie kann Publisher auf ähnliche Weise aufhören, Nachrichten an die Warteschlange zu senden, wenn der Broker inaktiv ist? Ist der Leistungsschalter eine der Optionen, die wir berücksichtigen können?Spring Boot - RabbitMQ - Handle Szenario, bei dem der Broker ausfällt
0
A
Antwort
1
Sie können RetryTemplate
der RabbitTemplate
Bean hinzufügen.
Fügen Sie der Wiederholungsvorlage eine RecoveryCallback
Implementierung hinzu, die den Fehler ignoriert (oder protokolliert).
Es wird versuchen, eine Verbindung herzustellen, aber nicht fehlschlagen.
Wenn Sie die Spring Integration layer oben auf Spring AMQP verwenden, können Sie dem ausgehenden Kanaladapter einen circuit breaker request handler advice hinzufügen.
Verwandte Themen
- 1. Camel - RabbitMQ Spring Boot
- 2. Wie Nachrichten in mqtt behalten, wenn der Moskito-Broker ausfällt?
- 3. Spring-Boot deaktiviert Start beim Start RabbitMQ
- 4. Spring RabbitMQ - Beschränkung der Nachrichteneinschränkung
- 5. spring amqp stop consumer threads bei broker absturz
- 6. RabbitMQ Frühling Boot org.springframework.beans.factory.NoSuchBeanDefinitionException
- 7. Sellerie Aufgaben Verloren nach dem Senden an rabbitmq Broker
- 8. Konfigurieren der Sicherheit bei Spring Boot
- 9. Spring Websocket Multiple Broker-Relay-Adressen?
- 10. Kanäle in RabbitMQ mit Arbeitswarteschlange Szenario Leerlauf
- 11. Frühling Boot-WebSocket mit eingebettetem ActiveMQ Broker
- 12. Spring Batch Scope Problem bei der Verwendung von Spring Boot
- 13. Vorteil der Spring Boot
- 14. Behandeln Sie die Ausnahmen in RabbitMQ Spring Boot-Anwendung
- 15. Sellerie RabbitMQ Broker Failover verbinden Problem
- 16. Externe Broker (RabbitMQ) konfigurieren In Spring4 + STOMP + SockJS Anwendung
- 17. Liberty Spring Boot und Spring Boot
- 18. Kafka Konsolenhersteller nicht ausfällt, wenn Broker-Adresse falsch ist
- 19. Spring Boot begrenzte Autokonfiguration
- 20. Spring AMQP/RabbitMQ und Hibernate Transaction Mananger
- 21. JAX-RS und MVC bei Spring Boot
- 22. Einrichtung der Broker-URL
- 23. Handle Nachrichtenabhängigkeit bei Verwendung Abend-Umgebung (MessageMQ)
- 24. Fehler bei @EnableAutoConfiguration und @@ ComponentScan mit Spring-Boot + Spring Data
- 25. Spring Boot laden Bild nach dem Upload
- 26. Spring Cloud Stream RabbitMQ
- 27. Spring-Boot Custom Repository
- 28. Spring Boot Actuator ohne Spring Boot
- 29. Spring Boot-Anwendung sofort nach dem Start
- 30. Microservice mit Spring Boot
Danke @Gary Russel. Kann RetryTemplate von dem Verbraucher verwendet werden, der die Nachrichten von RabbitMQ konsumiert. Ich habe 10 Verbraucher für jede App-Instanz eingerichtet und ich sehe sie ständig versuchen, eine Verbindung zu Rabbitmq Instanz, die down ist. Gibt es eine Möglichkeit für mich, entweder retrytemplate oder circuitbreaker zu verwenden, um die Abfrage der Warteschlange zu stoppen? –
Nein; Auf der Verbraucherseite können Sie die Verbindungswiederholungen über 'recoveryInterval' oder' recoveryBackOff' konfigurieren. Wenn Sie ein 'FixedBackOff' verwenden, kann es mit' maxAttempts' konfiguriert werden und es stoppt den Container automatisch nach dieser Nummer. Sie müssen die Container erneut manuell starten, wenn die Verbindung repariert ist. –
Danke @Gary Russell. –