Niezawodne dostarczanie zdarzeń w Apache Kafka oparte o ponawianie i DLQ
Jacek Grobelny, Tech Lead @ Consdata
Agenda
-
Consdata
-
Santander Poczta
-
Pierwsza implementacja
-
Problemy
-
Refactoring do Event Sourcingu
-
Problemy
-
Live Demo
-
Wnioski
<CONSDATA >
Santander Poczta
-
poczta retail/corporate
-
5 mln kont
-
500 mln wiadomości
-
operacje masowe
Problemy pierwszej implementacji
-
komunikacja synchroniczna
-
mało elastyczne API
-
mnogość przypadków - wysyłka masowa
Wolumen danych
Event Sourcing to the Rescue!
-
Czym jest Event Sourcing
-
Event Store vs State Store
-
Revert do dowolnego momentu
Zmiana architektury
-
Wszystkie procesy dotyczące wiadomości w naszym systemie to eventy!
-
Mamy state store (SOLR)
-
Wystarczy wybrać event store :)
Apache Kafka
-
Referencje
-
Wydajność
-
Wolumen danych
-
Dumb Broker/Smart Consumer
Wyzwania
-
Ostateczna spójność (idempotencja)
-
Zwiększenie złozoności (serwery, monitoring)
-
Ręczne aktualizacje na bazie
-
Obsługa błędów
Obsługa błędów
Strategia #1
BRAK
Obsługa błędów
Strategia #2
Ponawianie
Obsługa błędów
Strategia #3
independent events
topic external
-> topic external retry(loop)
->topic external dlq
Obsługa błędów
Strategia #4
dependent events
topic final(loop)
-> topic final dlq
LIVE DEMO
Kolejne kroki
Wnioski końcowe
-
Minimalna konfiguracja 3xBroker, 3xZoo
-
Obsługa błędów
-
Monitoring
Dziękuję
https://ynleborg.github.io
https://blog.consdata.tech/
@ynleborg
Q&A
Warsaw IT Architecture Group #1
By ynleborg
Warsaw IT Architecture Group #1
- 329