Ich möchte den Timeout-Zeitraum für die Bestätigung festlegen, d. H. Wenn die Bestätigung vom Broker für die bestimmte Nachricht vom Verbraucher innerhalb eines Zeitraums nicht empfangen wird, sollte der Broker die Nachricht erneut an den Verbraucher senden. Ist es möglich solche Einstellungen im Broker einzustellen ???Legen Sie das Timeout für eine Nachricht in ActiveMQ-Broker fest?
3
A
Antwort
1
siehe http://activemq.2283324.n4.nabble.com/Acknowledgement-Timeout-td4531016.html
Es gibt keine Unterstützung für diese mit der Nachlieferung Politik. jms ist verbindungsorientiert, so die Annahme ist, dass, wenn die Verbindung lebendig ist und es gibt keine Bestätigung, hat der Verbraucher einen guten Grund, nicht zu quittieren noch.
0
Hier sind ein paar Links, die erklären, wie man dieses Problem mit ActiveMQ lösen 5.9:
- https://issues.apache.org/jira/browse/AMQ-3394
- https://planet.jboss.org/post/coming_in_activemq_5_9_a_new_way_to_abort_slow_consumers
Fassen wir zusammen:
- , wenn die Verbraucher JVM stirbt, das JMS Verbindung zwischen Broker und Verbraucher wird Timeout, und jede unbestätigte Nachricht wird für die Zustellung neu terminiert
- Wenn die JMS-Verbindung nicht stirbt aber der Verbraucher fest ist, Verarbeitung einer Nachricht,
AbortSlowAckConsumerStrategy
wird langsam Verbraucher abbrechen, wenn sie den konfigurierten Schwellenwert erreichen der Langsamkeit ist standardmäßig, dass ein Verbraucher, der 30 Sekunden lang keine Nachricht hinterlassen hat, langsam ist