UgrĂĄs a tartalomhoz
← Vissza a naplóhoz

KapacitĂĄskezelĂ©s szezoncsĂșcsra — 200 foglalĂĄs/nap Ă©s 99,7% uptime

6 hĂ©t csĂșcs, 14 800 foglalĂĄs, napi 215 ĂĄtlag. Token-bucket rate limiter beszĂĄllĂ­tĂłi API-kra, BullMQ priority queue, cache pre-warming. 99,7% uptime.

KapacitĂĄskezelĂ©s szezoncsĂșcsra — 200 foglalĂĄs/nap Ă©s 99,7% uptime

Az utazĂĄsi iroda szoftvere nem egyenletesen terhelt. Egy magyar iroda Ă©ves grafikonjĂĄn a következƑ minta lĂĄtszik: mĂĄrciustĂłl mĂĄjusig + szeptembertƑl oktĂłberig napi ~200 foglalĂĄs, a többi 8 hĂłnapban napi ~20. Ez a 10x-es lengĂ©s a rendszer architektĂșrĂĄjĂĄnak valĂłs prĂłbĂĄja.

A szezoncsĂșcs anatĂłmiĂĄja

2026 ĂĄprilis–mĂĄjusi adatok a Travelium teljes ĂŒgyfĂ©lbĂĄzisĂĄn:

  • 6 hĂ©t csĂșcs (mĂĄrcius 21 – mĂĄjus 6)
  • 14 800 foglalĂĄs ezen idƑszakban
  • napi ĂĄtlag: 215 foglalĂĄs, csĂșcsnap 312
  • csĂșcsĂłra: 17:00–19:00 (a lĂĄtogatĂłk munka utĂĄn intĂ©znek)
  • rendszer uptime: 99,7% (kb. 30 percnyi cumulatĂ­v leĂĄllĂĄs az idƑszakra)
  • lecsengĂ©s: mĂĄjus 7-tƑl napi ~25 foglalĂĄs

A 8x ugråst két perc alatt nem lehet skålåzni. Tudatos felkészítést igényel.

BeszĂĄllĂ­tĂłi API rate limiting

A legnagyobb veszĂ©ly nem a sajĂĄt rendszerĂŒnk — hanem a beszĂĄllĂ­tĂłkĂ©. Amadeus alapvetƑ limitje 30 hĂ­vĂĄs/mĂĄsodperc/iroda. Ha tĂșllĂ©pjĂŒk, 5 percre tiltanak. Egy csĂșcsĂłra alatt ez 1500 elveszett keresĂ©st jelent.

A megoldås a Travelium oldalån: per-beszållító, per-iroda token bucket. Minden beszållító kap egy konfigurålt limit-et (Amadeus: 25 hív/s, Sabre: 40, direkt szållodai API-k våltozó). A bucket Redis-ben él, atomikus INCR + TTL workflow-val.

Ha egy iroda tĂșllĂ©pnĂ© a sajĂĄt limit-et, a kĂ©rĂ©s 429-cel visszakerĂŒl a UI-ra, az ĂŒgynök egy diszkrĂ©t toast-ĂŒzenetet lĂĄt: „EgyidejƱ keresĂ©sek magas terhelĂ©se, prĂłbĂĄlja Ășjra 3 mĂĄsodperc mĂșlva.” Egy ĂŒgynökre nĂ©zve Ă©vente ĂĄtlag 4-szer fordul elƑ — elviselhetƑ.

BullMQ-håttér prioritåssal

A hĂĄttĂ©rmunkĂĄk (voucher generĂĄlĂĄs, szĂĄmla kiĂĄllĂ­tĂĄs, email kĂŒldĂ©s, beszĂĄllĂ­tĂł ĂĄllapot-szinkron) BullMQ + Redis queueban futnak, hĂĄrom prioritĂĄsi sĂĄvval:

  1. high — ĂŒgyfĂ©l-blokkolĂł dolog: fizetĂ©s visszaigazolĂĄsa, voucher generĂĄlĂĄs. CĂ©l: < 5 mp.
  2. normal — hĂĄttĂ©r: review-email kĂŒldĂ©se, statisztika-aggregĂĄlĂĄs. CĂ©l: < 5 perc.
  3. low — opcionĂĄlis: havi riport generĂĄlĂĄs, partner-szinkron. CĂ©l: < 60 perc.

CsĂșcsidƑben a queue mĂ©lysĂ©ge a normal sĂĄvban tipikusan 800–1200 között mozog, de a high mindig 0 közelĂ©ben marad. A 99,7% uptime nem a hardver — a queue-prioritĂĄs eredmĂ©nye.

Pre-warming cache

A nĂ©pszerƱ csomagok keresƑ-cache-Ă©t a szezon elƑtt 4 hĂ©ttel elkezdjĂŒk elƑmelegĂ­teni. A cache-warmer cronjob ĂłrĂĄnkĂ©nt vĂ©gigfut a top 200 desztinĂĄciĂł + dĂĄtum kombinĂĄciĂłn, Ă©s elƑre lekĂ©r mindent a beszĂĄllĂ­tĂłktĂłl.

Ez a tehet ĂĄr: szezoncsĂșcsban az ĂĄtlagos „keresĂ©s-vĂĄlasz” idƑ 2,1 mĂĄsodperc (warm cache hit), nem 5,5 mĂĄsodperc (cold lookup). A kĂŒlönbsĂ©g a lĂĄtogatĂł oldalĂĄn Ă©rzĂ©kelhetƑ — kevesebb tĂŒrelmetlen bounce.

A 2026 ĂĄprilisi crunch

És az igazi vizsga. Április 8., egy keddi nap, 17:42-kor 312 pĂĄrhuzamos keresĂ©s. A rendszer-metriĂĄk:

  • API vĂĄlaszidƑ p95: 2,8 mp (cĂ©l: < 3 mp ✅)
  • DB connection pool hasznĂĄlat: 78% (max: 100, ✅)
  • Redis memĂłria: 4,1 GB / 8 GB allokĂĄlt (✅)
  • BeszĂĄllĂ­tĂłi 429-ek: 8 (Amadeus, 30 mĂĄsodpercen belĂŒl recovered, ✅)
  • Sikertelen foglalĂĄs: 0 (✅)

Ez az Ăłra termelte a hĂłnap legnagyobb forgalmĂĄt egy 14 fƑs magyar iroda szĂĄmĂĄra: 41 sikeres foglalĂĄs, 11,2 milliĂł Ft GMV. Egyetlen ĂŒgyfĂ©l sem lĂĄtott „rendszerĂŒnk ĂĄtmenetileg tĂșlterhelt” hibĂĄt.

Lesson

A szezoncsĂșcs nem hardver-vĂĄsĂĄrlĂĄs. Token-bucket alapĂș rate limiting, BullMQ-prioritĂĄs, cache-elƑmelegĂ­tĂ©s Ă©s per-pillanat metrika-figyelĂ©s egyĂŒttesen adja a 8x-es lengĂ©s elviselĂ©sĂ©hez szĂŒksĂ©ges architektĂșrĂĄt. A 99,7% uptime egy 14 fƑs iroda mögött ugyanaz, mint egy nagy OTA-Ă© — csak kĂ©t nagysĂĄgrenddel olcsĂłbb mĂ©rnöki munkĂĄbĂłl.

BeszĂ©ljĂŒnk a projektedrƑl

Mondd el, mit Ă©pĂ­tesz — meglĂĄtjuk, hogyan segĂ­thetĂŒnk.

KapacitĂĄskezelĂ©s szezoncsĂșcsra — 200 foglalĂĄs/nap Ă©s 99,7% uptime — Nortinia Journal | Nortinia