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 для обработчика сообщений, выполните следующие действия:
- Откройте
файл конфигурации
/opt/apigee/customer/application/message-processor.propertiesв редакторе. Если такого файла нет, создайте его. - Задайте нужное значение для свойства Max L1 TTL (Максимальное время жизни L1):
conf_cache_max.l1.ttl.in.seconds = 180
Рекомендуемое значение –
180секунд. - Убедитесь, что файл свойств принадлежит пользователю apigee:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите 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 минуты).