Udostępnij za pośrednictwem


Gwarancje dostarczania komunikatów

Orleans Gwarancje dostarczania komunikatów są domyślnie co najwyżej jednokrotne. Opcjonalnie, jeśli skonfigurowano wykonywanie ponownych prób po przekroczeniu limitu czasu, Orleans zamiast tego zapewnia co najmniej jednokrotne dostarczanie.

Bardziej szczegółowo:

  • Każdy komunikat w programie Orleans ma automatyczny limit czasu (można skonfigurować dokładny limit czasu). Jeśli odpowiedź nie zostanie zwrócona na czas, zwrócona Task wartość zostanie przerwana z wyjątkiem przekroczenia limitu czasu.
  • Orleans Można skonfigurować do automatycznego ponawiania prób po przekroczeniu limitu czasu. Domyślnie nie wykonuje automatycznych ponownych prób.
  • Kod aplikacji może również zdecydować się na ponawianie prób po przekroczeniu limitu czasu.

Orleans Jeśli system nie jest skonfigurowany do automatycznego ponawiania prób (ustawienie domyślne), a aplikacja nie jest ponownie wysyłana — Orleans zapewnia co najwyżej jednokrotne dostarczanie komunikatów. Komunikat zostanie dostarczony raz lub w ogóle nie. Nigdy nie zostanie dostarczony dwa razy.

W systemie z ponownymi próbami (przez środowisko uruchomieniowe lub przez aplikację) komunikat może pojawić się wiele razy. Orleans obecnie nie robi nic, aby trwale przechowywać komunikaty, które już dotarły i pomijają drugie dostarczanie. (Uważamy, że byłoby to dość kosztowne). Tak więc w systemie ze ponownymi próbami Orleans nie gwarantuje co najwyżej raz dostawy.

Jeśli ponowisz próbę potencjalnie na czas nieokreślony, wiadomość zostanie ostatecznie wysłana, zapewniając co najmniej jednokrotną gwarancję dostarczenia. Zwróć uwagę, że "ostatecznie pojawi się" jest czymś, co środowisko uruchomieniowe musi zagwarantować. Nie przychodzi za darmo tylko sam w sobie, nawet jeśli nadal ponawiasz próbę. Orleans dostarcza ostateczne dostawy, ponieważ ziarna nigdy nie przechodzą do stałego stanu awarii, a ziarno, które nie powiodło się, zostanie ostatecznie ponownie aktywowane na innym silosie.

Podsumowując: w systemie bez ponawiania prób gwarantuje co najwyżej jednokrotne Orleans dostarczanie komunikatów. W systemie z nieskończonymi ponawianiami Orleans gwarantuje co najmniej raz (i nie gwarantuje co najwyżej raz).

Ważne

Orleans W raporcie technicznym przypadkowo wspomnieliśmy tylko o drugiej opcji z automatycznymi ponawianiami prób. Zapomnieliśmy wspomnieć, że domyślnie bez ponownych prób Orleans zapewnia co najwyżej jednokrotne dostarczanie.