Situatie
Când traficul crește de 100 de ori într-o secundă, baza de date este prima care cedează. Iată cum se pregătește infrastructura pentru a evita eroarea “504 Gateway Timeout”.
Solutie
Cum se implementează:
- Identificarea interogărilor lente (Slow Query Log):
- Înainte de eveniment, activează în MySQL/PostgreSQL logarea interogărilor care durează mai mult de 1 secundă.
- Folosește comanda
EXPLAINîn fața interogărilor SQL pentru a vedea dacă baza de date scanează tot tabelul sau folosește un index.
- Strategia de Caching cu Redis:
- Ce faci: Nu lăsa site-ul să ceară prețul și descrierea produsului din baza de date la fiecare vizită.
- Implementare: Stochează obiectul „Produs” într-o bază de date în memorie (Redis). Când un utilizator accesează pagina, codul verifică întâi în Redis. Dacă există acolo (cache hit), livrarea este instantanee (sub 10ms).
- Implementarea de Read Replicas:
- Cum funcționează: Configurezi un server „Master” unde se scriu comenzile și 2-3 servere „Slave” care doar citesc datele.
- Configurare: În fișierul de configurare al aplicației (ex. .env în Laravel sau Node.js), separi conexiunile:
DB_HOST_READșiDB_HOST_WRITE.
- Connection Polling:
- Folosește un instrument precum PgBouncer (pentru Postgres) pentru a gestiona mii de conexiuni simultane fără a epuiza memoria RAM a serverului.
Leave A Comment?