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

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

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

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

Антипаттерн

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

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

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

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

Влияние

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

Передовая практика

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

      ИЛИ

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

Дополнительная информация