Внутренности кэша

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

В этом разделе описывается работа кэша в рамках таких политик, как политика заполнения кэша , политика LookupCache , политика InvalidateCache и политика кэша ответов .

Общие кэши и кэши среды

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

  • Общий кеш: по умолчанию ваши прокси имеют доступ к одному общему кешу в каждой среде. Общий кеш хорошо подходит для базовых случаев использования.

    Работать с общим кешем можно только с помощью политик кеширования, а не API управления. Чтобы политика кэширования использовала общий кеш, просто опустите элемент <CacheResource> политики.

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

    Когда вы создаете кэш среды, вы настраиваете его свойства по умолчанию. Вы можете настроить политику кэширования на использование кэша среды, указав имя кэша в элементе <CacheResource> политики.

О шифровании кэша

Edge для общедоступного облака: кэш шифруется только в организациях с поддержкой PCI и HIPAA . Шифрование для этих организаций настраивается во время подготовки организации.

Уровни в памяти и постоянном кэше

Как общий кэш, так и кэш среды построены на двухуровневой системе, состоящей из уровня в памяти и постоянного уровня. Политика взаимодействует с обоими уровнями как единая структура. Edge управляет отношениями между уровнями.

  • Уровень 1 — это кэш в памяти (L1) для быстрого доступа. Каждый узел обработки сообщений (MP) имеет собственный кеш в памяти (реализованный из Ehcache) для максимально быстрого ответа на запросы.
    • На каждом узле определенный процент памяти резервируется для использования кэшем.
    • При достижении предела памяти Apigee Edge удаляет записи кэша из памяти (хотя они по-прежнему хранятся в постоянном кэше L2), чтобы гарантировать, что память остается доступной для других процессов.
    • Записи удаляются в порядке времени с момента последнего доступа, при этом самые старые записи удаляются первыми.
    • Эти кеши также ограничены количеством записей в кеше.
  • Уровень 2 — это постоянный кеш (L2) под кешем в памяти. Все узлы обработки сообщений совместно используют хранилище данных кэша (Cassandra) для сохранения записей кэша.
    • Записи кэша сохраняются здесь даже после их удаления из кэша L1, например, при достижении ограничений в памяти.
    • Поскольку постоянный кеш используется совместно обработчиками сообщений (даже в разных регионах), записи кэша доступны независимо от того, какой узел получает запрос на кэшированные данные.
    • Кэшироваться могут только записи определенного размера, и применяются другие ограничения кэша. См. Управление ограничениями кэша .

Вас также может заинтересовать подробная информация о кэшировании Apigee Edge в сообществе Apigee .

Как политики используют кеш

Ниже описано, как Apigee Edge обрабатывает записи кэша, пока ваши политики кэширования выполняют свою работу.

  • Когда политика записывает новую запись в кеш (политика PopulateCache или ResponseCache):
    1. Edge записывает запись в кэш L1 в памяти только того процессора сообщений, который обработал запрос. Если ограничения памяти процессора сообщений достигнуты до истечения срока действия записи, Edge удаляет запись из кэша L1.
    2. Edge также записывает запись в кеш L2.
  • Когда политика считывает данные из кэша (политика LookupCache или ResponseCache):
    1. Edge сначала ищет запись в кэше L1 в памяти процессора сообщений, обрабатывающего запрос.
    2. Если соответствующей записи в памяти нет, Edge ищет запись в постоянном кеше L2.
    3. Если запись отсутствует в постоянном кеше:
      • Политика LookupCache: значения из кэша не извлекаются.
      • Политика ResponseCache: Edge возвращает фактический ответ от цели клиенту и сохраняет запись в кеше до истечения срока ее действия или до тех пор, пока она не станет недействительной.
  • Когда политика обновляет или делает недействительной существующую запись кэша (политика InvalidateCache, PopulateCache или ResponseCache):
    1. Процессор сообщений, получающий запрос, отправляет широковещательную рассылку для обновления или удаления записи в кэше L1 для себя и всех других процессоров сообщений во всех регионах.
      • Если широковещательная рассылка успешна, каждый принимающий процессор сообщений обновляет или удаляет запись в кэше L1.
      • В случае сбоя широковещательной рассылки недействительное значение кэша остается в кэше L1 на процессорах сообщений, которые не получили широковещательную рассылку. Эти процессоры сообщений будут хранить устаревшие данные в кэше L1 до тех пор, пока не истечет срок жизни записи (TTL), или не будут удалены, когда будут достигнуты ограничения памяти процессора сообщений.
    2. Широковещательная рассылка также обновляет или удаляет запись в кэше L2.

Управление ограничениями кэша

Посредством настройки вы можете управлять некоторыми аспектами кэша. Общий объем, доступный для кэша в памяти, ограничен системными ресурсами и не подлежит настройке. К кэшу применяются следующие ограничения:

  • Ограничения кэша : применяются различные ограничения кэша , такие как размер имени и значения, общее количество кэшей, количество элементов в кэше и срок действия.
  • Кэш в памяти (L1). Ограничения памяти для вашего кэша не настраиваются. Ограничения устанавливаются Apigee для каждого процессора сообщений, на котором размещены кэши для нескольких клиентов.

    В размещенной облачной среде, где кэши в памяти для всех развертываний клиентов размещаются на нескольких общих процессорах сообщений, каждый процессор имеет настраиваемый Apigee процентный порог памяти, чтобы гарантировать, что кэширование не потребляет всю память приложения. При пересечении порогового значения для данного процессора сообщений записи кэша удаляются из памяти по принципу, когда они использовались реже всего. Записи, удаленные из памяти, остаются в кэше L2 до истечения срока их действия или до тех пор, пока они не станут недействительными.

  • Постоянный (L2) кеш. Записи, удаленные из кэша в памяти, остаются в постоянном кэше в соответствии с настраиваемыми параметрами времени жизни.

Настраиваемые оптимизации

В следующей таблице перечислены параметры, которые можно использовать для оптимизации производительности кэша. Значения этих параметров можно указать при создании нового кэша среды, как описано в разделе Создание и редактирование кэша среды .

Параметр Описание Примечания
Срок действия Указывает время жизни записей кэша. Никто.