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