Apigee Edge обеспечивает кэширование для сохранения данных между запросами. Когда данные API получены, они сохраняются в кеше в течение короткого периода времени, а затем удаляются. Максимальное время хранения фрагмента данных перед удалением называется сроком действия или временем жизни (TTL) кэша. Каждый кеш имеет значение TTL по умолчанию, но в некоторых случаях вам может потребоваться изменить значение TTL, чтобы улучшить производительность API.
Типы кэша
Данные API хранятся в двух типах кеша:
- Уровень 1 (L1): кэш в памяти, который имеет более быстрый доступ, но меньшую доступную емкость.
- Уровень 2 (L2): постоянный кеш в хранилище данных Cassandra, доступ к которому медленнее, но больше доступной емкости.
Когда запись данных в кэше L1 достигает TTL L1, она удаляется. Однако копия записи хранится в кэше L2 (у которого TTL больше, чем у кэша L1), где она остается доступной для других процессоров сообщений. Дополнительные сведения о кеше см. в разделе Уровни кэша в памяти и постоянного кэша .
Макс. L1 ТТЛ
В Edge для частного облака вы можете установить максимальный TTL кэша L1 для каждого процессора сообщений, используя свойство Max L1 TTL ( conf_cache_max.l1.ttl.in.seconds
). Срок действия записи в кэше L1 истечет после достижения максимального значения TTL L1, и она будет удалена.
Примечания:
- По умолчанию максимальный срок жизни L1 отключен (со значением
-1
), и в этом случае срок жизни записи в кэше L1 определяется настройками срока действия политики PopulateCache (как для кэша L1, так и для кэша L2). - Макс. L1 TTL имеет эффект только в том случае, если его значение меньше общего срока действия кэша.
Настройка максимального TTL L1
Вы можете установить Max L1 TTL на процессоре сообщений следующим образом:
- Откройте файл конфигурации
/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
Рекомендации по настройке максимального TTL L1
При настройке Max L1 TTL учитывайте следующие рекомендации:
- Промахи RPC. Если вы заметили промахи удаленного вызова процедур (RPC) между процессорами сообщений (MP) — особенно в нескольких центрах обработки данных — возможно, в кэше L1 есть устаревшие записи, которые останутся устаревшими до тех пор, пока не будут удалены из кэша L1. Установка более низкого значения Max L1 TTL приводит к более быстрому удалению устаревших записей и их замене свежими значениями из кэша L2.
Решение: Уменьшитеconf_cache_max.l1.ttl.in.seconds
. - Чрезмерная нагрузка на Casandra: если вы установите значение Max L1 TTL, записи в кэше 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 минуты), чтобы обеспечить бесперебойную обработку.