Dane podstawowePraca w tle

Strumieniowanie zdarzeń z grupami konsumentów

Strumienie zdarzeń tylko do dopisywania z grupami konsumentów, potwierdzeniami i automatycznym odzyskiwaniem wiadomości pozostawionych przez konsumenta, który uległ awarii.

dziennik tylko do dopisywania
Trwały
grup konsumentów na strumień
N
utraconych wiadomości po awarii
0
Krok 1 z 5
Opublikuj zdarzenie

Usługa zamówień dopisuje zdarzenie i dostaje jego identyfikator.

Przykładowa sesjaplaying
# Opublikuj zdarzenie
hotkv> XADD orders * type created order 1182 total 49.00
"1790985600123-0"

Animowany przegląd z prawdziwymi poleceniami HotKV i przykładowymi odpowiedziami. Kliknij dowolny krok, aby do niego przejść. Polecenia i odpowiedzi pozostają po angielsku, dokładnie tak, jak je wpisujesz i widzisz w HotKV.

Problem

Usługi reagujące na zdarzenia potrzebują czegoś więcej niż kolejki. Kilku niezależnych konsumentów chce tych samych zdarzeń, każda grupa konsumentów musi dzielić pracę między instancje, a gdy instancja pada z wiadomościami w rękach, ktoś musi to zauważyć i je przejąć.

Jak radzi sobie z tym HotKV

Strumień to dziennik tylko do dopisywania. Każda grupa konsumentów czyta go niezależnie, dostarcza każdą wiadomość jednemu członkowi grupy i utrzymuje ją jako oczekującą, dopóki członek jej nie potwierdzi. XAUTOCLAIM przekazuje wiadomości oczekujące zbyt długo zdrowemu konsumentowi.

Krok po kroku

Co się dzieje, polecenie po poleceniu

  1. 01

    Opublikuj zdarzenie

    Usługa zamówień dopisuje zdarzenie i dostaje jego identyfikator.

    XADD orders * type created order 1182 total 49.00
  2. 02

    Dwie grupy, jeden strumień

    Rozliczenia i wysyłka mają każde własną grupę i każde otrzymuje zdarzenie.

    XGROUP CREATE orders billing 0 MKSTREAM
  3. 03

    Konsumuj

    Instancja rozliczeń czyta nowe wiadomości swojej grupy, blokując do nadejścia czegoś.

    XREADGROUP GROUP billing billing-1 COUNT 10 BLOCK 5000 STREAMS orders >
  4. 04

    Potwierdź

    Po utworzeniu faktury rozliczenia potwierdzają, a wiadomość opuszcza listę oczekujących.

    XACK orders billing 1790985600123-0
  5. 05

    Odzyskaj po awarii

    Instancja wysyłki padła, trzymając wiadomości. Po 60 sekundach bezczynności przejmuje je zdrowa.

    XAUTOCLAIM orders shipping shipping-2 60000 0-0 COUNT 25
Gdzie się sprawdza

Scenariusze z życia

Potoki zamówień

Zamówienia płyną do rozliczeń, wysyłki i analityki, a każde czyta ten sam strumień we własnym tempie.

Strumienie audytu i aktywności

Działania użytkowników są dopisywane do strumienia i odtwarzane przez każdą usługę potrzebującą historii.

Wczytywanie danych IoT

Wiadomości z urządzeń są buforowane w strumieniach i przetwarzane przez grupę workerów skalującą się z obciążeniem.

Wbudowane

Co dostajesz

Dziennik tylko do dopisywania

Wpisy dostają identyfikatory uporządkowane w czasie i można je przycinać według długości lub wieku.

XADDXTRIM

Grupy konsumentów

Każda grupa dostaje każdą wiadomość i dzieli pracę między swoich członków.

XGROUPXREADGROUP

Potwierdzenia

Wiadomości pozostają oczekujące do potwierdzenia.

XACKXPENDING

Automatyczne odzyskiwanie

Wiadomości bezczynne zbyt długo są przejmowane przez innego konsumenta.

XAUTOCLAIMXCLAIM

Częste pytania

Czy mogę odtworzyć stare zdarzenia?

Tak. XRANGE czyta dowolną część strumienia po identyfikatorze, a nowa grupa konsumentów może zacząć od początku.

Jak zapobiec nieskończonemu rośnięciu strumienia?

Przytnij go przez XTRIM lub opcją MAXLEN albo MINID polecenia XADD.

Czy XADD może uniknąć zduplikowanych zdarzeń?

XADD obsługuje idempotentne identyfikatory producenta (IDMP), więc ponowiona publikacja nie tworzy drugiego wpisu. Zobacz opis XADD.

Powiązane przypadki użycia

Wypróbuj na własnym obciążeniu

HotKV mówi protokołem Redis, więc możesz skierować na niego istniejącego klienta i uruchomić te same polecenia.