Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
В этом разделе описывается работа кеша, используемого в таких правилах, как Populate Cache, LookupCache, InvalidateCache и Response Cache.
Общий и локальный кеш
Каждое настроенное правило кеширования может использовать один из двух типов кеша: встроенный общий кеш, к которому имеют доступ ваши приложения, и один или несколько кешей с областью действия на уровне среды, которые вы создаете.
-
Общий кеш. По умолчанию у ваших прокси-серверов есть доступ к одному общему кешу в каждой среде. Общий кеш хорошо подходит для базовых случаев использования.
Работать с общим кешем можно только с помощью правил кеширования, а не API управления. Чтобы правило кеширования использовало общий кеш, просто опустите элемент
<CacheResource>в правиле. -
Кеш среды. Если вы хотите настроить свойства кеша с выбранными вами значениями, можно создать кеш с областью действия на уровне среды. Подробнее о том, как создать и изменить кеш среды…
При создании кеша среды вы настраиваете его свойства по умолчанию. Чтобы в правилах кеширования использовался кеш среды, укажите название кеша в элементе
<CacheResource>правил.
О шифровании кеша
Edge для общедоступного облака. Кеш шифруется только в организациях, в которых включены PCI и HIPAA. Шифрование для таких организаций настраивается во время инициализации организации.
Уровни кеша в памяти и постоянного кеша
Общий и системный кеши построены на двухуровневой системе, состоящей из уровня в памяти и постоянного уровня. Правила взаимодействуют с обоими уровнями как с единой системой. Edge управляет связью между уровнями.

-
Первый уровень – кеш в памяти (L1) для быстрого доступа. У каждого узла обработки сообщений (MP) есть собственный кеш в памяти (реализованный на основе Ehcache), чтобы быстрее отвечать на запросы.
- На каждом узле определенный процент памяти зарезервирован для использования кешем.
- Когда достигается лимит памяти, Apigee Edge удаляет записи кеша из памяти (хотя они по-прежнему хранятся в постоянном кеше уровня 2), чтобы обеспечить доступность памяти для других процессов.
- Записи удаляются в порядке времени с момента последнего доступа, начиная с самых старых.
- Кроме того, в этих кешах ограничено количество записей.
-
Кеш второго уровня (L2) – это постоянный кеш, расположенный под кешем в памяти. Все узлы обработки сообщений используют хранилище данных кеша (Cassandra) для сохранения записей кеша.
- Записи кеша сохраняются здесь, даже если они удалены из кеша L1, например при достижении лимитов памяти.
- Поскольку постоянный кеш используется несколькими процессорами сообщений (даже в разных регионах), записи кеша доступны независимо от того, какой узел получает запрос на кешированные данные.
- В кеш могут быть добавлены только записи определенного размера. Также действуют другие ограничения. Подробнее об управлении ограничениями кеша…
Также рекомендуем ознакомиться с подробной информацией о кешировании в Apigee Edge на форуме сообщества Apigee.
Как правила используют кеш
Ниже описано, как Apigee Edge обрабатывает записи кеша, когда работают правила кеширования.
- Когда правило записывает новую запись в кеш (правило PopulateCache или ResponseCache):
- Edge записывает запись в кеш L1 в памяти только на процессоре сообщений , который обработал запрос. Если лимит памяти процессора сообщений будет достигнут до истечения срока действия записи, Edge удалит запись из кеша L1.
- Edge также записывает запись в кеш L2.
- Когда правило считывает данные из кеша (правило LookupCache или ResponseCache):
- Сначала Edge ищет запись в кеше L1 процессора сообщений, обрабатывающего запрос.
- Если в памяти нет соответствующей записи, Edge ищет ее в постоянном кеше L2.
- Если записи нет в постоянном кеше:
- Правило LookupCache: из кеша не извлекается никаких значений.
- Правило ResponseCache: Edge возвращает клиенту фактический ответ от целевого сервиса и сохраняет запись в кеше до истечения срока ее действия или аннулирования.
- Когда правило обновляет или делает недействительной существующую запись в кеше (правило InvalidateCache, PopulateCache или ResponseCache):
- Обработчик сообщений, получивший запрос, отправляет широковещательное сообщение, чтобы обновить или удалить запись в кеше L1 на себе и всех других обработчиках сообщений во всех регионах.
- Если трансляция прошла успешно, каждый процессор сообщений, получивший ее, обновит или удалит запись в кеше L1.
- Если трансляция не удастся, недействительное значение кеша останется в кеше L1 на процессорах сообщений, которые не получили трансляцию. Обработчики сообщений будут иметь устаревшие данные в кеше L1, пока не истечет время жизни записи (TTL) или она не будет удалена при достижении лимитов памяти обработчика сообщений.
- При этом запись в кеше L2 обновляется или удаляется.
- Обработчик сообщений, получивший запрос, отправляет широковещательное сообщение, чтобы обновить или удалить запись в кеше L1 на себе и всех других обработчиках сообщений во всех регионах.
Как управлять лимитами кеша
С помощью конфигурации можно управлять некоторыми аспектами кеша. Общий объем пространства, доступного для кеша в памяти, ограничен системными ресурсами и не настраивается. К кешу применяются следующие ограничения:
- Ограничения кеша. Действуют различные ограничения кеша, например на размер имени и значения, общее количество кешей, количество объектов в кеше и срок действия.
-
Кеш в памяти (L1). Ограничения памяти для кеша настраивать нельзя. Ограничения устанавливаются Apigee для каждого процессора сообщений, на котором размещены кеши нескольких клиентов.
В облачной среде с размещением у поставщика услуг, где кеши в памяти для всех развертываний клиентов размещаются на нескольких общих процессорах сообщений, каждый процессор имеет настраиваемый Apigee порог использования памяти в процентах, чтобы кеширование не занимало всю память приложения. Когда для определенного процессора сообщений достигается пороговое значение, записи кеша удаляются из памяти на основе принципа наименьшей давности использования. Записи, вытесненные из памяти, остаются в кеше L2, пока не истечет срок их действия или они не будут признаны недействительными.
- Постоянный кеш (L2). Записи, удаленные из кеша в памяти, остаются в постоянном кеше в соответствии с настраиваемыми параметрами времени жизни.
Настраиваемые варианты оптимизации
В таблице ниже перечислены настройки, которые можно использовать для оптимизации работы кеша. Вы можете указать значения для этих настроек при создании нового кеша среды, как описано в разделе Создание и изменение кеша среды.
| Параметр | Описание | Примечания |
|---|---|---|
| Срок действия | Указывает время жизни записей кеша. | Нет. |