Мигрирахме съхранението на сесии към 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.


← Назад към Научени Уроци