Перейти к основному содержимому

Кеширование

Кеширование можно настроить отредактировав файл config.json.

warning

Изменения параметров конфигурации в этом разделе требуют перезапуска сервера перед вступлением в силу.

Выбрать тип кеширования

примечание

Доступно только в On-Premise инсталляции Time.

  • Переменная среды: TIME_CACHESETTINGS_CACHETYPE
  • Значения:
    • redis: кеширование производится через Redis.
    • lru: (По умолчанию) кеширование производится с использованием локального lru-кеша, т.е. в режиме высокой доступности у каждого time-server собственный кеш, который кластерно инвалидируется.

Тайм-аут чтения из Redis

примечание

Доступно только в On-Premise инсталляции Time.

Максимально допустимое время от момента установки соединения до полного чтения/записи объекта из/в Redis.

Формат ввода: numeric в миллисекундах. По умолчанию 300 (миллисекунд).

  • Переменная среды: TIME_CACHESETTINGS_READWRITETIMEOUT

Выключить client-side кеширование

примечание

Доступно только в On-Premise инсталляции Time.

  • Переменная среды: TIME_CACHESETTINGS_DISABLECLIENTSIDECACHE
  • Значения:
    • нет: (По умолчанию) при чтении из Redis полученные данные записываются в локальный кеш и переиспользуются в течении 5 минут.

      Это способствует уменьшению времени выполнения запросов. Для фиксирования изменений ключей используется broadcast.

    • да: при чтении всегда идет обращение к Redis.

Circuit Breaker

Circuit Breaker - механизм, который предотвращает обращения к Redis в случае его недоступности, используя LRU-кэш в качестве резервного решения. Это позволяет обеспечить стабильную работу системы, поддерживая её функциональность даже при сбоях в Redis.

Механизм работает в трех состояниях:

  • Closed — Все запросы обрабатываются через Redis, так как он доступен.
  • Open — Redis признан недоступным, все запросы перенаправляются в LRU-кэш.
  • HalfOpen — Система продолжает использовать LRU-кэш, но периодически проверяет доступность Redis, отправляя часть запросов.

Включение Circuit Breaker

  • Переменная среды: TIME_CACHESETTINGS_CIRCUITBREAKERSETTINGS_ENABLE
  • Значения:
    • Нет: (По умолчанию) Circuit Breaker отключен, все запросы обрабатываются напрямую через Redis.
    • Да: Circuit Breaker включен, запросы автоматически переключаются между Redis и LRU при сбоях.

Длительность открытого состояния Circuit Breaker

Этот параметр задаёт время (в секундах), в течение которого Circuit Breaker остаётся в состоянии Open. После истечения этого времени механизм переходит в режим HalfOpen, чтобы проверить доступность Redis.

Формат ввода: integer (default: 30).

  • Переменная среды: TIME_CACHESETTINGS_CIRCUITBREAKERSETTINGS_OPENSTATEDURATIONSECONDS

Порог последовательных операций Circuit Breaker

Этот параметр определяет:

  • Сколько подряд ошибок должно произойти в Redis, чтобы Circuit Breaker перешёл из состояния Closed в Open.
  • Сколько подряд ошибок должно быть выполнено в Redis, чтобы Circuit Breaker вернулся из состояния HalfOpen в Open.
  • Сколько подряд успешных операций должно быть выполнено в Redis, чтобы Circuit Breaker вернулся из HalfOpen в состояние Closed.

Формат ввода: integer (default: 5).

  • Переменная среды: TIME_CACHESETTINGS_CIRCUITBREAKERSETTINGS_CONSECUTIVETHRESHOLD