Configuración predeterminada de HCL Cache

El archivo de configuración predeterminado de HCL Cache (cache_cfg.yaml) contiene todas las configuraciones de memoria caché proporcionadas (de forma estándar).

Para realizar cambios en los valores predeterminados que se han establecido en este archivo, modifique las propiedades respectivas dentro del archivo de configuración personalizado de HCL Cache. Los valores del archivo de configuración personalizado, que comparten el mismo formato que el archivo de configuración predeterminado, alteran temporalmente los valores del archivo de configuración predeterminado.

Configuración Descripción
clientId Este valor se utiliza para identificar el contenedor de origen. El clientId se almacena junto con entradas de memoria caché y se utiliza con mensajes de invalidación.

En un entorno Kubernetes, ${HOSTNAME} se correlaciona con el nombre POD. La cadena {UUID}, si se encuentra, se sustituye por un identificador exclusivo universalmente generado. Esto se puede utilizar en escenarios en los que varios servidores comparten el mismo nombre de host (por ejemplo, localhost)

namespace Un espacio de nombres opcional. Si se configura, el espacio de nombres se añade previamente a todos los nombres de memoria caché en el servidor de Redis. Esto se hace para permitir que varios entornos compartan la misma base de datos de Redis.

Este parámetro está configurado de forma predeterminada para coincidir con el inquilino, el entorno y el tipo de entorno.

logMetricsFrequency La frecuencia en segundos a la que se graban las métricas de memoria caché en los registros. El valor predeterminado es 900 (15 minutos).
El registrador puede inhabilitarse mediante:
  • estableciendo logMetricsFrequency en 0;
  • O estableciendo el registrador enoff
    com.hcl.commerce.cache.MetricsLogger=off​
redis
habilitado Si Redis está habilitado.

De forma predeterminada, el valor se establece en false.

Utilice el valor true en el archivo de configuración personalizado de HCL Cache para habilitar el almacenamiento en memoria caché remota.

yamlConfig

Vía de acceso al archivo de configuración YAML para la conexión de Redis.

De forma predeterminada, el valor se establece en /SETUP/hcl-cache/redis_cfg.yaml.

circuitBreaker

Para las memorias caché que habilitan interfaces locales y remotas, la configuración del separador de circuitos permite que la memoria caché funcione de forma independiente en modalidad local durante una interrupción de Redis.

Se establece una memoria caché en modalidad de interrupción cuando se cumplen las condiciones para minimumFailureTimeMs y minimumConsecutiveFailures. Durante este tiempo, se reintentan las conexiones con Redis solo después de que haya transcurrido el intervalo de tiempo establecido por retryWaitTimeMs.

Cuando se alcanza retryWaitTimeMs, el interruptor de circuito permite que los intentos de conexión al servidor de Redis se reanuden. Una solicitud satisfactoria restaura la conexión de la modalidad de interrupción.

Si el número de fallos continúa y alcanza el valor establecido en minimumConsecutiveFailuresResumeOutage, el cliente vuelve a establecerse en modalidad de interrupción y debe volver a alcanzar el valor retryWaitTimeMs antes de que se intente volver a establecer una conexión.

El valor minimumConsecutiveFailuresResumeOutage se utiliza para permitir la realización de pruebas rápidas de la conexión después de una interrupción sin tener que esperar a que se vuelvan a acceder a los valores minimumFailureTimeMs y minimumConsecutiveFailures.

Véase también maxTimeToLiveWithRemoteOutage.

Configuraciones de circuitBreaker retryWaitTimeMs Una vez que se ha establecido una memoria caché en modalidad de interrupción, retryWaitTimeMs es el tiempo, en milisegundos, que debe transcurrir antes de que se reintente la conexión de Redis.

De forma predeterminada, este valor está establecido en 30000 (30 segundos).

minimumFailureTimeMs El tiempo, en milisegundos, que debe transcurrir antes de que una memoria caché se pueda poner en modalidad de interrupción. Esta cantidad de tiempo, y minimumConsecutiveFailures debe satisfacerse antes de que el interruptor de circuito cierre la conexión de Redis.

De forma predeterminada, este valor se establece en 10000 (10 segundos).

minimumConsecutiveFailures

El número mínimo de errores de intentos de conexión consecutivos antes de que una memoria caché se pueda establecer en modalidad de interrupción.

Este valor y minimumFailureTimeMs deben satisfacerse antes de que el separador de circuitos cierre la conexión de Redis.

De forma predeterminada, este valor se estable en 20 intentos de conexión.

minimumConsecutiveFailuresResumeOutage

El número mínimo de errores de intentos de conexión consecutivos antes de que una memoria caché se pueda volver a establecer en modalidad de interrupción.

Cuando una conexión está en modalidad de interrupción y alcanza el valor de retryWaitTimeMs, el interruptor de circuito permitirá intentos de conexión al servidor de Redis.

Para permitir una rápida prueba de la conexión sin un exceso indebida de intentos de conexión, se utiliza minimumConsecutiveFailuresResumeOutage.

Si se alcanza minimumConsecutiveFailuresResumeOutage, la conexión se vuelve a poner en modalidad de interrupción, sin tener que esperar a que se cumpla de nuevo el ciclo de condición completo de minimumFailureTimeMs y minimumConsecutiveFailures.

De forma predeterminada, este valor se estable en 2 intentos de conexión.

cacheConfigs
cacheName El nombre de la memoria caché que se va a configurar. Los parámetros de tamaño y tamaño en megabytes se obtienen de la configuración de DynaCache en WebSphere Application Server. El nombre de memoria caché defaultCacheConfig está reservado y especifica los valores predeterminados para todas las memorias caché.
localCache
Configuraciones de localCache habilitado Permite que esta memoria caché utilice el almacenamiento en memoria caché local.
maxInactivityWithRemote El tiempo, en segundos, que esta memoria caché puede permanecer inactivo en su estado local.

Cuando el almacenamiento en memoria caché remota está habilitado, este valor impone un tiempo de inactividad máximo permitido para esta memoria caché antes de invalidarse. Esta configuración opcional se utiliza para tener tiempos de espera más cortos cuando la memoria caché local actúa como una memoria caché de réplica/Near de la memoria caché remota.

De forma predeterminada, este valor se estable en 0 (inhabilitado).

maxTimeToLiveWithRemote El tiempo, en segundos, que esta memoria caché puede ser válida.

Cuando el almacenamiento en memoria caché remota está habilitado, este valor impone un tiempo de espera máximo permitido para esta memoria caché.

Esta configuración opcional se puede utilizar para especificar tiempos de espera más cortos cuando la memoria caché local actúa como una memoria caché cercana para la memoria caché remota.

De forma predeterminada, este valor se estable en 0 (inhabilitado).

maxTimeToLiveWithRemoteOutage El tiempo, en segundos, que esta memoria caché puede permanecer válido durante una interrupción remota.

Cuando el disyuntor está habilitado y una memoria caché está en modalidad de interrupción, este valor se utiliza para imponer un nuevo tiempo de espera en la memoria caché local.

Se utiliza un tiempo de espera corto ya que las invalidaciones no están disponibles si Redis no está operativo.

Este valor se establece en 300 segundos de forma predeterminada.

remoteCache
Configuraciones de remoteCache habilitado Permite que esta memoria caché se base en el uso del almacenamiento en memoria caché remota.

De forma predeterminada, se establece en enabled cuando se configura una conexión de Redis.

defaultTimeout Normalmente, las entradas de memoria caché especifican un tiempo máximo de vida (tiempo de espera) en segundos cuando se crean. Pero si la entrada de memoria caché no especifica ningún tiempo de espera, se utiliza el valor de tiempo de espera predeterminado defaultTimeout para dicha entrada de memoria caché.

De forma predeterminada, el valor del parámetro defaultTimeout se establece en 172800 segundos (2 días).

Important: Redis debe configurarse con un valor de uso de menos reciente (LRU) volátil*. Para obtener más información, consulte Utilización de Redis como memoria caché de LRU en la documentación de Redis.
maximumTimeout Normalmente, las entradas de memoria caché especifican un tiempo máximo de vida (tiempo de espera) en segundos cuando se crean. Pero si la entrada de memoria caché no especifica ningún tiempo de espera, se utiliza el valor de tiempo de espera predeterminado defaultTimeout para dicha entrada de memoria caché.

Si defaultTimeout se establece en un valor superior a maximumTimeout, se utiliza el valor maximumTimeout.

De forma predeterminada, el valor del parámetro maximumTimeout se establece 604800 en segundos (7 días).

HCL Commerce Version 9.1.10.0 or laterOpciones de códec (compresión) El elemento de configuración de códec situado en remoteCache se puede utilizar para modificar el códec binario predeterminado que Redis utiliza para serializar los valores de entrada de la memoria caché. La memoria caché de HCL utilizará el método de compresión LZ4 para comprimir.
cacheName:
  remoteCache:
    enabled: true
    codec: binary
La compresión es ideal para memorias caché con grandes entradas de memoria caché (como baseCache), que pueden ocupar varios GC de espacio de servidor de Redis. Aunque la compresión reduce la cantidad de valores almacenados y el tráfico de red, tiene el coste de comprimir y expandir entradas. Esto se hace en el servidor, lo que puede provocar retrasos y aumentar el uso de la CPU.
HCL Commerce Version 9.1.10.0 or laterDirectivas de memoria caché El elemento del nombre de la memoria caché se puede utilizar para activar directivas de memoria caché. Solo están habilitados para baseCache de forma predeterminada.
baseCache:
  enableDirectives: true

Aunque la memoria caché de HCL permite el almacenamiento en memoria caché local y/o remota a nivel de memoria caché, a veces es preferible seleccionar qué memorias caché se utilizan a nivel de entrada de memoria caché.

Las entradas de memoria caché para operaciones de búsqueda pueden crecer sin límites y tener una reutilización limitada (proporciones de coincidencias). Aunque el almacenamiento en memoria caché a nivel local puede ser beneficioso, el almacenamiento en memoria caché a distancia puede ser costoso ya que añade una sobrecarga de E/S, consume una gran cantidad de memoria de Redis y requiere frecuentes operaciones de mantenimiento de memoria de Redis.

Cuando se habilitan las directivas de una memoria caché, el cachespec.xml puede contener los atributos siguientes para controlar si se utiliza el almacenamiento en memoria caché local o remoto a nivel de entrada de memoria caché:

DC_HclCacheSkipRemote:
Atributo especial que indica a la memoria caché de HCL que no utilice la memoria caché remota para esta entrada aunque esté habilitada para la memoria caché.
DC_HclCacheSkipLocal:
Atributo especial que indica a la memoria caché de HCL que no utilice la memoria caché local para esta entrada aunque esté habilitada para la memoria caché.

<component id="DC_HclCacheSkipRemote" type="attribute">
  <required>true</required>
</component>