Антипаттерн: хранение в кеше данных размером более 256 КБ

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Apigee Edge позволяет хранить данные в кеше во время выполнения для обеспечения их сохранности и быстрого извлечения.

  • Сначала данные хранятся в кеше процессора сообщений, который называется кешем L1.
  • Кеш L1 ограничен объемом памяти, зарезервированным для него в процентах от памяти JVM.
  • Затем записи из кеша сохраняются в кеше второго уровня, доступном для всех процессоров сообщений. Подробнее об этом рассказывается в разделе ниже.
  • В кеше второго уровня нет жесткого ограничения на количество записей, но максимальный размер записи, которую можно кешировать, ограничен 256 КБ. Размер кеша 256 КБ рекомендуется для оптимальной производительности.

Антипаттерн

В этом антипаттерне рассказывается о последствиях превышения текущих ограничений на размер кеша на платформе Apigee Edge.

Если в кеше хранится более 256 КБ данных, последствия будут следующими:

  • API-запросы, выполняемые впервые на каждом из процессоров сообщений, должны получать данные независимо от исходного источника (правила или целевого сервера), поскольку записи размером более 256 КБ недоступны в кеше L2.
  • Хранение больших объемов данных (более 256 КБ) в кеше L1 обычно создает большую нагрузку на ресурсы платформы. В результате кеш L1 быстрее заполняется, и для других данных остается меньше места. В результате данные нельзя кешировать так часто, как хотелось бы.
  • Кэшированные записи из обработчиков сообщений будут удалены, когда будет достигнут лимит на количество записей. В результате данные будут снова извлечены из исходного источника на соответствующих процессорах сообщений.

Две блок-схемы.
  Первый предназначен для файлов размером не более 256 КБ и показывает потоки данных между прокси API и процессорами сообщений, а также между процессорами сообщений и кешем второго уровня постоянного хранилища. Один для размера> 256 КБ, который показывает потоки между прокси API и процессорами сообщений, а также потоки между процессорами сообщений и данными/ответами, не хранящимися в кеше L2.

Результат

  • Данные размером более 256 КБ не будут храниться в постоянном кеше уровня 2.
  • Более частые вызовы исходного источника (правила или целевого сервера) приводят к увеличению задержек при обработке запросов API.

Совет

  • Для оптимальной производительности рекомендуется хранить в кеше данные размером менее 256 КБ.
  • Если вам нужно хранить данные размером более 256 КБ, рассмотрите следующие варианты:
    • использовать подходящую базу данных для хранения больших объемов данных;

      ИЛИ

    • Сжатие данных

Дополнительные материалы