← Wszystkie wpisy

Kursy na żywo w dużej skali: jak OddFeeds obsługuje feed o wielkości 250 mln requestów na FourA

Jak OddFeeds utrzymuje feed z kursami sportowymi na żywo przy ponad 250 milionach requestów i 50 TB miesięcznie na FourA, płacąc tylko za udane requesty.

OddFeeds prowadzi feed kursów sportowych na żywo. Zbiera kursy bukmacherskie z kilkudziesięciu źródeł w czasie rzeczywistym i dostarcza je jako jeden stale aktualizowany strumień.

Ten strumień zasila platformę OddStorm, która analizuje kursy w poszukiwaniu okazji do arbitrażu sportowego. Arbitraż nie wybacza błędów: cena opóźniona o sekundę lub nieznacznie błędna to nie tylko zły wygląd. Przekłada się na miliony niepoprawnych arbitraży. Feed ma więc jeden twardy wymóg, który nigdy nie podlega negocjacjom: działać szybko i precyzyjnie, bez przerwy, we wszystkich źródłach.

Oba projekty należą do OddStorm.Company, grupy zajmującej się danymi sportowymi i arbitrażem. Oto jak OddFeeds obsługuje swój pipeline na FourA.

Ponad 250 milionów requestów miesięcznie. Około 50 terabajtów transferu. Ponowne skanowanie co jedną do dwóch sekund. Zero kredytów za nieudany request.

Skanowanie rynku co jedną do dwóch sekund

Kursy zmieniają się bez przerwy, dlatego OddFeeds odczytuje je ponownie co jedną do dwóch sekund z kilkudziesięciu źródeł. Przy takim tempie liczby szybko rosną: ponad 250 milionów requestów miesięcznie i około 50 terabajtów transferu. Wiele z tych źródeł jest chronionych przez zaawansowane systemy bot management, na czym większość konfiguracji scrapingu zaczyna tracić ogromne budżety.

Dlaczego standardowe podejście tutaj zawodzi

Koszty przy takim wolumenie gwałtownie rosną, a zależą od modelu rozliczeń narzędzia. Niektóre pobierają opłatę za próbę, więc każda blokada to wyrzucone pieniądze. Przy setkach milionów requestów same nieudane próby mogą przewyższyć koszt faktycznie wykonanej pracy. Inne rozliczają się za transfer, co wygląda tanio tylko do momentu, gdy ruch staje się duży: przy stawce 0,30 USD za GB, 50 terabajtów miesięcznie daje 15 000 USD na miesiąc lub 180 000 USD rocznie, zanim doliczy się choćby jedną blokadę. Do tego najtrudniejsze źródła wymagają prawdziwej przeglądarki i czystej ścieżki sieciowej, aby w ogóle się załadować, a robienie tego dla każdego requesta jest wolne i kosztowne. Pipeline czytający rynek co sekundę nie może sobie pozwolić na takie narzuty.

Płać tylko za to, co działa

W FourA nieudany request kosztuje zero kredytów. Opłata jest pobierana wyłącznie za dostarczony, poprawny response. Ta pojedyncza zasada całkowicie zmienia strukturę kosztów: blokady, timeouty i ponowienia przestają generować opłaty, a koszt odpowiada danym, które OddFeeds faktycznie otrzymuje. Przy tej skali sprowadzenie kosztu niepowodzenia do zera decyduje o różnicy między przewidywalnym budżetem miesięcznym a wydatkami, które wymykają się spod kontroli przy każdym źródle.

Wybieraj najlżejszą działającą metodę

FourA nie wysyła każdego requesta w ten sam sposób. Proste źródła są odczytywane bezpośrednio przez lekki silnik requestów. Gdy źródło stawia opór, endpoint proxy z profilem przeglądarki samodzielnie radzi sobie ze zdecydowaną większością stron, bez uruchamiania przeglądarki. W przypadku większości chronionych źródeł to wystarcza i pozwala utrzymać niskie koszty.

Tylko najtrudniejsze źródła wymagają silnika przeglądarki, a nawet wtedy wystarczy użyć go tylko raz. Ładuje on stronę tak jak prawdziwa przeglądarka i ustanawia poprawną, zweryfikowaną sesję. Ta sesja jest następnie przekazywana z powrotem do lekkiego silnika, który wykorzystuje ją wielokrotnie, aby pobierać świeże kursy tysiące razy przy ułamku kosztów.

Kosztowna ścieżka jest więc rzadka, opłacana tylko raz, a następnie amortyzowana przez długą serię tanich odczytów. Poniższy wykres przedstawia jedną z takich trudniejszych sesji: pojedynczy kosztowny request w celu jej nawiązania, a potem długi ogon tanich odświeżeń.

Credits per request across one sessionOne browser solve, then the request engine replays the cleared session.010203030 cr2 cr eachrequest 1later in the sessionBrowser solveCheap replayAverage cost / request

Auto, jednorazowy endpoint FourA, który przyjmuje URL i zwraca treść, jest używany do wykrywania struktur, gdy OddFeeds mapuje nowe źródło. Produkcyjny pipeline bezpośrednio obsługuje główne endpointy request, proxy i browser, optymalizując proces pod kątem niskiego kosztu pojedynczego rekordu.

Niezawodność przy blokadach ze strony źródeł

Źródła zachowują się różnie. Niektóre udostępniają kursy tylko dla wybranych krajów. Inne weryfikują każde wejście. FourA kieruje każdy request przez odpowiedni węzeł wyjściowy i właściwy silnik, dzięki czemu feed działa nieprzerwanie bez konieczności ręcznej rekonfiguracji dla każdego źródła. Celem nie jest sztuka dla sztuki. Chodzi o stabilny pipeline danych, który zachowuje ciągłość i dokładność przy nieustannie zmieniających się źródłach.

Wynik

OddFeeds przetwarza feed kursów na żywo na poziomie ponad 250 milionów requestów i 50 terabajtów miesięcznie, z odświeżaniem co 1-2 sekundy. Koszt skaluje się wraz z pomyślnie pobranymi danymi, a nie z liczbą prób czy blokad. Trudne źródła są rozwiązywane raz i potem tanio odczytywane, a nieudane zapytania nic nie kosztują. Właśnie to pozwala tak dużemu feedowi zachować szybkość oraz niski koszt.

Zbuduj swój pipeline na tej samej infrastrukturze

FourA to platforma, na której działa OddFeeds: płać tylko za udane requesty, rozwiązuj trudne źródła raz i skaluj system bez wzrostu rachunku za błędy. Zacznij za darmo lub zobacz cennik.