Będąc nieco zdezorientowanym tymi dwoma terminami, zastanawiam się, jaki jest cel posiadania trwałej wiadomości, ale przejściowej (nietrwałej) kolejki? W końcu, jeśli broker zostanie zrestartowany, a kolejki nie zostaną przywrócone, odzyskane wiadomości zostaną zmarnowane.Pojęcie trwałości i trwałości Zamieszanie w AMQP
Odpowiedz
Możesz mieć trwałą kolejkę, ale wiadomości "śmiertelne", więc po ponownym uruchomieniu brokera nadal możesz mieć kolejkę, ale będzie pusta i odwrotnie, ale jeśli będziesz smutny, tak, stracisz wszystkie wiadomości w kolejce.
W wybranej kombinacji opcja trwałości komunikatu jest naprawdę bezużyteczna, ale nie spowoduje błędu.
Ale jeśli wiążisz alternate exchange w celu wymiany, do której publikujesz komunikaty i jest on trwały, po ponownym uruchomieniu możesz przekierować do niego wiadomości, jeśli nie masz zadeklarowanej kolejki przejściowej.
przykład:
Załóżmy, że mamy taką kombinację i odpowiednio związane kolejki Q*1
komunikaty M*1
i Q*2
- M*2
.
[ Exchange-main/durable ] + [Exchange-alternate/durable]
[Qm1/transient][Qm2/transient] [Qax1/durable][Qax2/durable]
Niech publikować wiadomości [Mt1/transient]
i `[MD1/trwałe], będziemy mieli taką sytuację:
[ Exchange-main/durable ] + [Exchange-alternate/durable]
[Qm1/transient][Qm2/transient] [Qax1/durable][Qax2/durable]
[Mt1/transient]
[Md1/durable]
Po restarcie Dostaniemy
[ Exchange-main/durable ] + [Exchange-alternate/durable]
[Qax1/durable][Qax2/durable]
Niech publikują dwie wiadomości ponownie, [Mt1/transient]
i "[Md1/durable]:
[ Exchange-main/durable ] + [Exchange-alternate/durable]
[Qax1/durable][Qax2/durable]
[Mt1/transient]
[Md1/durable]
więc restart broker ponownie:
[ Exchange-main/durable ] + [Exchange-alternate/durable]
[Qax1/durable][Qax2/durable]
[Md1/durable]
- 1. MSMQ dla trwałości?
- 2. wzory trwałości zeromq
- 3. Konfigurowanie trwałości i orm z JPA 2
- 4. Nie rozumiem punkt niezależności trwałości
- 5. persistence.xml dla wielu jednostek trwałości
- 6. Biblioteka trwałości danych dla AngularJs
- 7. Dynamiczne ustawianie właściwości trwałości JPA
- 8. DDD Kiedy należy utworzyć obiekt domeny i obiekt trwałości zamiast używać obiektu trwałości jako obiektu domeny?
- 9. Jak korzystać z menedżera trwałości JDO?
- 10. usługa grails z różnymi zakresami dla trwałości
- 11. Podmiot biblioteki trwałości systemu Android z AutoValue
- 12. Zapobieganie czasowemu przedłueniu jego okresu trwałości?
- 13. O używaniu Terracotta jako rozwiązania trwałości
- 14. Utrzymanie menedżera trwałości JDO zamiast go zamknąć?
- 15. Dynamicznie zmieniająca się jednostka trwałości - JPA
- 16. Funkcja rdzy nie ma trwałości statycznej?
- 17. Jakie jest zastosowanie warstwy trwałości w dowolnej aplikacji?
- 18. Dlaczego plasterki w strukturze wymagają trwałości, ale nie wektory?
- 19. Jak powinienem uporządkować Aktorów Persistence w trwałości Akka?
- 20. Czy możliwe jest zdefiniowanie deklaracji trwałości w REPL?
- 21. Rozwiązania trwałości dla C++ (z bazą danych SQL)?
- 22. Poszukuję bazy danych o wartości klucza rozproszonego dla trwałości
- 23. Zaplanowane ograniczenia zadań (lub sposób implementacji trwałości zadań)?
- 24. Nie Dostawca trwałości dla EntityManager o nazwie X
- 25. Ale to konflikt z własnymi wymaganiami lub minimalnej trwałości
- 26. javax.persistence.PersistenceException: Brak dostawcy trwałości dla EntityManager o nazwie
- 27. Czy istnieje sposób na utrzymanie trwałości selera/RabbitMQ?
- 28. Eclipse: Żaden generator o nazwie "system-uuid" nie został zdefiniowany w jednostce trwałości
- 29. Datanucleus ostrzegawcza: klasa została określona w trwałości jednostce ale nie odnotowany, więc ignorując
- 30. AMQP, SQL Server i XA
Kiedy więc w w scenariuszu vice versa mamy „śmiertelne” kolejki i uporczywe wiadomości, po restarcie skończymy bez kolejek, ale wiadomości, które zostały przypisane wcześniej do nie więcej istniejących kolejek, czy to oznacza, że mamy zwisające wiadomości? – ahj
Wiadomości zostaną utracone. Zaktualizowałem swoją odpowiedź przykładem, mam nadzieję, że to pomoże. – pinepain
@pinepain: Zdefiniuj "wiadomości zostaną utracone." Czy to znaczy, że wiadomości zostały usunięte z dysku, lub że nadal są na dysku, ale zostały osierocone, ponieważ RabbitMQ nie wie już, gdzie są? – Ellesedil