Какой объем таблиц используется в работе микросервиса?

«Какой объем таблиц используется в работе микросервиса?» — вопрос из категории Архитектура, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Объем данных, которым управляет один микросервис, обычно ограничен десятками гигабайт, чтобы сохранять agility и простоту операций (резервное копирование, миграции, масштабирование). Конкретные цифры зависят от домена:

  • Сервис аутентификации/пользователей (UserService): 1-50 ГБ.
  • Сервис заказов (OrderService): 10-100 ГБ.
  • Сервис кэша или сессий (SessionService): 1-10 ГБ (данные часто volatile).
  • Справочный/конфигурационный сервис (CatalogService): до 1 ГБ.

Практическое правило: если таблица приближается к 100 ГБ, это сигнал пересмотреть подход:

  1. Партиционирование по дате или диапазону ключа.
  2. Архивация старых данных в холодное хранилище (например, S3).
  3. Шардинг (горизонтальное разделение) базы данных самого микросервиса.

Пример из опыта: В системе электронной коммерции микросервис PaymentService работал с таблицей транзакций объемом ~30 ГБ. При росте до 80 ГБ мы внедрили партиционирование по месяцу, что сохранило производительность SELECT для текущих данных и упростило очистку архивных.