Миграция на сесийно хранилище към Redis
Мигрирахме съхранението на сесии към Redis за хоризонтално мащабиране. Забравихме, че рестартирането на Redis изхвърля всеки потребител.
Преди:
- Сесии съхранявани in-memory на всеки сървър
- Sticky sessions през load balancer
- Работи добре при малък мащаб
Миграцията:
- Централизирани сесии в Redis
- Вече не са нужни sticky sessions
- Хоризонтално мащабиране е възможно
Какво забравихме:
- Redis е in-memory по подразбиране
- Рестартиране = всички сесии загубени
- 50,000 потребители изхвърлени едновременно
- Support тикети: "Защо ме изхвърли?"
Решението:
- Активиране на Redis persistence (RDB + AOF)
- Redis Sentinel за висока достъпност
- Грациозна деградация: fallback към JWT когато Redis е недостъпен
- Rolling рестартирания по време на maintenance прозорци
Урок: In-memory съхранението е ефимерно. Ако загубата на данните причинява въздействие върху потребителя, имате нужда от persistence и redundancy.