2016-07-05 7 views
0

Nehmen wir an, dass ein Verbraucher für eine Warteschlange für einige Zeit getrennt wurde, während der viele Nachrichten produziert werden.Wie lange hält RabbitMQ die Nachrichten für getrennte Verbraucher?

  1. Wie lange speichert RabbitMQ die Nachrichten für den getrennten Verbraucher ohne dauerhaften Modus? (Wird die Warteschlange direkt nach dem Trennen der Verbindung des Kunden verworfen? Oder wird die Warteschlange so lange gespeichert, bis der Speicher es zulässt?)

  2. Gibt der dauerhafte Modus einem Benutzer die Möglichkeit, eine Nachricht zu lesen, die bis dahin veröffentlicht wurde jetzt? (D wahlfreien Zugriff auf die Warteschlange, Nachrichten out-of-order Abrufen oder raubend vom Anfang der Warteschlange)

Antwort

1
  1. Es gibt einige TTL extensions.

TTL kann durch Einstellen des x-message-ttl Argument für eine gegebene Warteschlange gesetzt werden, um queue.declare, oder indem die message-ttl Richtlinieneinstellung.

  1. Nein, tut es nicht. Die Nachrichten werden in der Warteschlange gehalten, bis sie bestätigt werden, unabhängig von der Dauerhaftigkeit. (es sei denn natürlich der Server stirbt, dann sind die Nachrichten weg wenn nicht vorher als dauerhaft markiert).
+0

Was passiert, wenn die Nachrichten nicht bestätigt, sondern in der Warteschlange gespeichert werden? Verschüttet es sie auf die Festplatte? – syko

+0

Wenn die Warteschlange und Nachrichten dauerhaft sind - ja. Suchen Sie nach "Nachrichten Haltbarkeit" hier https://www.rabbitmq.com/tutorials/tutorial-two-python.html – cantSleepNow