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

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

Типы кеша

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

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

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

Максимальное время жизни L1

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

Примечания

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

Настройка максимального времени жизни L1

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

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

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

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

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

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

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

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

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