Как задать срок действия кеша L1 в Message Processor

Apigee Edge предоставляет кеширование для сохранения данных между запросами. Полученные через API данные хранятся в кеше в течение короткого периода времени, а затем удаляются. Максимальный срок хранения данных до их удаления называется сроком действия или временем жизни (TTL) кеша. У каждого кеша есть значение TTL по умолчанию, но в некоторых случаях вам может понадобиться изменить его, чтобы повысить производительность API.

Типы кеша

Данные API хранятся в двух типах кеша:

  • Уровень 1 (L1): кеш в памяти с более быстрым доступом, но меньшим объемом.
  • Уровень 2 (L2): постоянный кеш в хранилище данных Cassandra, доступ к которому осуществляется медленнее, но в котором больше места.

Когда срок жизни записи в кеше L1 истекает, она удаляется. Однако копия записи сохраняется в кеше уровня 2 (у которого более длительный срок жизни, чем у кеша уровня 1), где она остается доступной для других процессоров сообщений. Подробнее об уровнях кеша в памяти и постоянного кеша…

Максимальное значение TTL для L1

В Edge для частного облака можно задать максимальное время жизни кеша уровня 1 для каждого процессора сообщений, используя свойство Max L1 TTL (conf_cache_max.l1.ttl.in.seconds). Запись в кеше уровня 1 будет удалена по истечении этого времени.

Примечания

  • По умолчанию максимальное время жизни в кеше уровня 1 отключено (значение -1). В этом случае время жизни записи в кеше уровня 1 определяется настройками срока действия правила PopulateCache (для кеша уровня 1 и уровня 2).
  • Параметр "Максимальное время жизни в кеше уровня 1" действует, только если его значение меньше общего срока действия кеша.

Как задать максимальное время жизни для уровня L1

Чтобы задать максимальное время жизни в кеше L1 для процессора сообщений, выполните следующие действия:

  1. Откройте файл конфигурации /opt/apigee/customer/application/message-processor.properties в редакторе. Если файла нет, создайте его.
  2. Задайте нужное значение для свойства Max L1 TTL:
    conf_cache_max.l1.ttl.in.seconds = 180

    Рекомендуемое значение – 180 секунд.

  3. Убедитесь, что файл свойств принадлежит пользователю apigee:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Перезапустите обработчик сообщений:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Рекомендации по настройке максимального времени жизни для уровня L1

При настройке максимального времени жизни на уровне L1 учитывайте следующие рекомендации:

  • Пропуски RPC. Если вы заметили пропуски вызовов удаленных процедур (RPC) между процессорами сообщений (MP), особенно в разных центрах обработки данных, возможно, в кеше L1 есть устаревшие записи, которые останутся устаревшими, пока не будут удалены из кеша L1. Если задать для параметра Max L1 TTL более низкое значение, устаревшие записи будут удаляться и заменяться новыми значениями из кеша L2 раньше.
    Решение. Уменьшите conf_cache_max.l1.ttl.in.seconds.
  • Избыточная нагрузка на Cassandra. Если задать значение для параметра Max L1 TTL, записи в кеше L1 будут чаще становиться недействительными, что приведет к увеличению количества промахов кеша L1 и попаданий в кеш L2. Поскольку к кешу L2 будет обращаться больше пользователей, нагрузка на Cassandra возрастет.
    Решение. Увеличьте значение conf_cache_max.l1.ttl.in.seconds.

Как правило, максимальное время жизни кеша L1 должно быть таким, чтобы частота пропусков RPC между MP была сбалансирована с потенциальной нагрузкой на Cassandra.

Рекомендуем установить для параметра conf_cache_max.l1.ttl.in.seconds значение не менее 180 секунд (3 минуты), чтобы обработка выполнялась без сбоев.