Wydajne logowanie w Tibco BW
Wymagania brzegowe:
- aktywność logowania w stopniu minimalnym wpływa na czas działania procesu głównego
- logowanie jest asynchroniczne (fire and forget)
- logowanie wrzuca dane do bazy
- wydajność przedkładana jest nad ewentualną utratę części logów w przypadku zabicia procesu (in-memory vs persistent)
Rozwiązanie:
- LinkedBlockingQueue o ograniczonym rozmiarze (queue overflow vs OutOfMemory)
- JavaEventSource z operacją poll na kolecje, wrzucający dane w ramach batcha JDBC
- Java shutdown hook zmniejszający timeout operacji poll i czekający na opróżnienie kolejki
albo wrzucanie logów po persystentnym bardzo stuningowanym Apache ActiveMQ
1 komentarze:
zawsze mowilem ActiveMQ..
tego uzywam w swoim doktoranckim frameworku :P
Prześlij komentarz