integración de la versión 9 de HCL Commerce con Websphere eXtreme Scale
Integre con WebSphere eXtreme Scale para mejorar el rendimiento de gran volumen.
Visión general
Antes de decidir integrar HCL Commerce con WebSphere eXtreme Scale, revise las ventajas de la integración, los requisitos y los pasos de configuración necesarios. Para la versión 9.0.0.7 y posteriores de IBM HCL Commerce, puede integrar con IBM WebSphere eXtreme Scale para mejorar el rendimiento en su implementación de gran volumen. El programa bajo licencia de WebSphere eXtreme Scale es una cuadrícula de datos elástica, escalable y en memoria que se puede utilizar como memoria caché avanzada para WebSphere Commerce. WebSphere eXtreme Scale procesa un volumen de transacciones masivo con una alta eficacia y escalabilidad lineal. La integración con WebSphere eXtreme Scale puede proporcionar ventajas significativas de rendimiento para clientes de HCL Commerce con gran volumen.
WebSphere eXtreme Scale se ha utilizado en las versiones 7.x y 8.x de HCL Commerce como proveedor de memoria caché externa.
Requisitos previos
- La versión necesaria de WebSphere eXtreme Scale Server es la 8.6.1.2 o posterior. Desde esta versión, los clientes de WebSphere eXtreme Scale que se ejecutan tanto en WebSphere Application Server como en WebSphere Application Server Liberty tradicionales pueden acceder simultáneamente al mismo WebSphere eXtreme Scale Server.
- La versión necesaria de HCL Commerce es la 9.0.0.7 o posterior. A partir de esta versión, el cliente de WebSphere eXtreme Scale se empaqueta en el Docker del servidor de aplicaciones (para el servidor de transacciones, el servidor de tienda y el servidor de búsqueda de HCL Commerce).
- El coste de pérdida de memoria caché es mucho mayor que el coste de aciertos de memoria caché, lo que significa que mejorar la proporción de aciertos de memoria caché puede mejorar significativamente el rendimiento.
- El objeto de la memoria caché tiene un tamaño grande o el número total de entradas de la memoria caché es muy grande (por ejemplo, millones de entradas). En este caso, almacenar la instancia de memoria caché en la máquina local virtual Java de servidor de aplicaciones requiere un tamaño de almacenamiento dinámico muy grande.
- Cuando no son frecuentes los sucesos de invalidación de memoria caché, lo que significa que no hay un gran número de llamadas de invalidación emitidas a WebSphere eXtreme Scale.
- Antes de empezar
- Aunque el cliente de WebSphere eXtreme Scale está empaquetado en los contenedores de Docker de la aplicación, la conexión de WebSphere eXtreme Scale no está habilitada de forma predeterminada. Para habilitar la integración de WebSphere eXtreme Scale, debe seguir los pasos de configuración de esta guía de aprendizaje.
Procedimiento
1. Configuración del servidor de transacciones
El procedimiento para configurar el servidor de transacciones es diferente del que se utiliza para configurar el servidor de búsqueda y el servidor de tienda, ya que el entorno del servidor es WebSphere Application Server tradicional en lugar de Liberty.
- Ejecute el mandato Run Engine create-xs-domain para crear un dominio de WebSphere eXtreme Scale. El puerto y el nombre de host del servidor de catálogo de WebSphere eXtreme Scale son necesarios para ejecutar el mandato Run Engine create-xs-domain. Por ejemplo:
run create-xs-domain test.cn.ibm.com 2809
En este ejemplo,
test.cn.ibm.com
es el nombre de host del servidor de catálogo de WebSphere eXtreme Scale y2809
es el puerto de escucha.Este paso crea el archivo de configuración catalogservice.xml en el repositorio de configuración de WebSphere Application Server tradicional.
Nota: Ejecute el paso 1 una sola vez. - Conecte la instancia de memoria caché específica a WebSphere eXtreme Scale. Necesita el nombre de la instancia de memoria caché de Java Naming and Directory Interface y el nuevo tamaño de memoria caché para ejecutar el mandato Run Engine connect-basecache-wxs.
- Para BaseCache, llame a connect-basecache-wxs. Por ejemplo:
En este ejemplo, 5000 es el nuevo tamaño de memoria caché para baseCache. El archivo de configuración baseCache es server.xml y el archivo de configuración para otras instancias de memoria caché es resources-pme502.xml.run connect-basecache-wxs 5000
Nota: El mandato para baseCache es diferente para otras instancias de la memoria caché, porque el archivo de configuración que se actualiza es diferente. - Para otras instancias de memoria caché, llame a connect-objectcache-wxs. Por ejemplo:
En este ejemplo, services/cache/WCLayoutDistributedMapCache es la instancia de memoria caché de destino de Java Naming and Directory Interface yrun connect-objectcache-wxs services/cache/WCLayoutDistributedMapCache 1000
1000
es el nuevo tamaño de memoria caché.Debe especificar el nuevo tamaño de memoria caché cuando se conecta una instancia de memoria caché específica a WebSphere eXtreme Scale porque el cálculo de número de entrada de memoria caché total es diferente cuando se utiliza el proveedor de memoria caché predeterminado (local) que cuando se utiliza el proveedor de memoria caché de WebSphere eXtreme Scale. Cuando se utiliza el proveedor de memoria caché predeterminado, el número de entrada de memoria caché total solo se determina mediante el parámetro CacheSize de la instancia de memoria caché.
Cuando se utiliza el proveedor de memoria caché de WebSphere eXtreme Scale, el número de entrada de memoria caché total es igual a
CacheSize*Partition-number/Replica-number
. En este escenario, Patition-number y Replica-number están determinados por la configuración del lado de WebSphere eXtreme Scale Server.Por lo tanto, cuando se sitúa una instancia de memoria caché en WebSphere eXtreme Scale, el parámetro CacheSize se debe ajustar de acuerdo con la configuración del lado del servidor de WebSphere eXtreme Scale.Importante: La omisión de la especificación de tamaño de memoria caché puede causar un comportamiento inesperado, como un error de memoria agotada en WebSphere eXtreme Scale Server.Además, en este procedimiento, el paso 2 solo pone una instancia de memoria caché en WebSphere eXtreme Scale. Si necesita poner varias instancias de memoria caché en WebSphere eXtreme Scale, ejecute el paso 2 una vez por cada instancia de memoria caché necesaria.
Este es un archivo de Docker de ejemplo para personalizar la imagen de Docker del servidor de transacciones aprovechando los mandatos Run Engine para habilitar la integración de WebSphere eXtreme Scale:FROM repname/library/ts-app:tsapp RUN run create-xs-domain test.cn.ibm.com 2809 && \ run connect-basecache-wxs 2000 && \ run connect-objectcache-wxs services/cache/DM_UserCache 10000 && \ run connect-objectcache-wxs services/cache/WCPriceDistributedMapCache 5000 && \ ...
- Para BaseCache, llame a connect-basecache-wxs. Por ejemplo:
2. Configuración del servidor de búsqueda y del servidor de tienda
El procedimiento para configurar el servidor de búsqueda y el servidor de tienda es diferente del que se utiliza para configurar el servidor de transacciones, porque el entorno del servidor es Liberty en lugar de WebSphere Application Server tradicional.
- Habilite la característica de memoria caché elástica. El puerto y el nombre de host del servidor de catálogo de WebSphere eXtreme Scale son necesarios para ejecutar el mandato Runtime Engine enable-xs-feature. Por ejemplo:
En este ejemplo,run enable-xs-feature test.cn.ibm.com 2809
test.cn.ibm.com
es el nombre de host del servidor de catálogo de WebSphere eXtreme Scale y2809
es el puerto de escucha.Este paso crea un archivo de configuración (elasticCache.xml) en la carpeta Liberty configDropins. El contenido del archivo incluye la habilitación de la característica elasticCacheClient-1.0 y la definición de un valor predeterminado elasticCacheClient (con el nombre y puerto de host de WebSphere eXtreme Scale especificado).
- Conecte la instancia de memoria caché específica a WebSphere eXtreme Scale. El nombre de instancia de memoria caché de la interfaz de Java Naming Directory Interface Cache y el nuevo tamaño de la memoria caché son necesarios para ejecutar los mandatos Run Engine connect-searchcache-wxs y connect-crscache-wxs.
- Para el servidor de búsqueda, llame a connect-searchcache-wxs. Por ejemplo:
En este ejemplo, services/cache/SearchFacetDistributedMapCache es el nombre de la instancia de memoria caché de destino de Java Naming Directory Interface yrun connect-searchcache-wxs services/cache/SearchFacetDistributedMapCache 2000
2000
es el nuevo tamaño de memoria caché.Nota: El mandato para el servidor de búsqueda es diferente al mandato para el servidor de tienda porque el patrón de configuración en el archivo de configuración es distinto. - Para el servidor de tienda, llame a connect-crscache-wxs. Por ejemplo:
En este ejemplo, services/cache/WCLayoutDistributedMapCache es el nombre de la instancia de memoria caché de destino de Java Naming Directory Interface yrun connect-crscache-wxs services/cache/WCLayoutDistributedMapCache 2000
2000
es el nuevo tamaño de memoria caché.Nota: A diferencia del servidor de transacciones, no se diferencia entre baseCache y otras instancias de memoria caché. Por lo tanto, se utiliza el mismo mandato Run Engine tanto para el servidor de búsqueda como para el servidor de tienda, y el nombre de baseCache de Java Naming Directory Interface esbaseCache
.
Este es un archivo de Docker de ejemplo para personalizar la imagen de Docker del servidor de búsqueda aprovechando los mandatos Run Engine para habilitar la integración de WebSphere eXtreme Scale:FROM repname/library/search-app:searchapp RUN run enable-xs-feature test.cn.ibm.com 2809 && \ run connect-searchcache-wxs services/cache/SearchFacetDistributedMapCache 2000 && \ ...
Este es un archivo de Docker de ejemplo para personalizar la imagen de Docker del servidor de tienda aprovechando los mandatos Run Engine para habilitar la integración de WebSphere eXtreme Scale:FROM repname/library/crs-app:crsapp RUN run enable-xs-feature test.cn.ibm.com 2809 && \ run connect-crscache-wxs baseCache 2000 && \ run connect-crscache-wxs services/cache/WCLayoutDistributedMapCache 1000 && \ ...
- Para el servidor de búsqueda, llame a connect-searchcache-wxs. Por ejemplo:
3. Configuración avanzada
Cuando ejecute los pasos de configuración básicos (paso 1 y paso 2), todas las instancias de memoria caché se introducen en la cuadrícula de WebSphere eXtreme Scale predeterminada denominada DYNACACHE_REMOTE. Las dinstintas instancias de memoria caché se colocan en correlaciones diferentes y el patrón de nombre es IBM_DC_PARTITIONED_ más el nombre de instancia de memoria caché.
Basándose en el rendimiento u otras consideraciones, puede poner instancias de memoria caché en una cuadrícula y en una correlación determinadas de WebSphere eXtreme Scale. En este escenario, se necesitan dos parámetros más cuando se ejecutan los mandatos Run Engine para el paso 2.
run connect-searchcache-wxs services/cache/SearchFacetDistributedMapCache 2000 searchGrid MapA
En este ejemplo, searchGrid
es el GridName
de destino y MapA
es el MapName de destino.Limitaciones
Estas suposiciones se establecieron durante el desarrollo de los mandatos Run Engine, lo que puede limitar el uso de los mandatos. Para eludir estas limitaciones, debe configurar HCL Commerce de forma diferente (por ejemplo, actualizando directamente el archivo de configuración).
- Invalidación de memoria caché entre el servidor de transacciones y el servidor de tienda
- Cuando una instancia de memoria caché del servidor de tienda se sitúa en WebSphere eXtreme Scale, también se debe poner la instancia de memoria caché correspondiente (con el mismo nombre de Java Naming Directory Interface) del servidor de transacciones en WebSphere eXtreme Scale (utilizando el mismo servidor de catálogo, la misma cuadrícula y la misma correlación). De lo contrario, el contenido de la memoria caché generado por el servidor de tienda no se puede invalidar correctamente mediante un mensaje de invalidación desde el servidor de transacciones.
- Limitación única de servidor de catálogo de WebSphere eXtreme Scale
- La implementación actual del mandato Run Engine solo crea un servidor de catálogo de WebSphere eXtreme Scale predeterminado (nombre de host y puerto) en el archivo de configuración. Por lo tanto, todas las instancias de la memoria caché deben acceder al mismo servidor de catálogo de WebSphere eXtreme Scale. Es posible que quiera que diferentes instancias de memoria caché accedan a distintos servidores de catálogo de WebSphere eXtreme Scale para atender la alta disponibilidad. En esta situación, puede implementarlo utilizando una IP virtual o un DNS dinámico. Sin embargo, si desea especificar un nombre de host de WebSphere eXtreme Scale Server diferente para instancias de memoria caché distintas, solo puede hacerlo en el entorno de Liberty para el servidor de tienda y el servidor de búsqueda. Además, es necesario modificar directamente el archivo de configuración para crear varias entradas de elasticCacheClient .
- Limitación en el uso de gridName y mapName en el entorno de Liberty
- Para la configuración avanzada en el entorno de Liberty, los parámetros gridName y mapName deben ser exclusivos. Esto significa que no puede poner en la misma cuadrícula no predeterminada dos instancias de memoria caché diferentes del servidor de búsqueda o del servidor de tienda. Nota: No existe una limitación similar para el servidor de transacciones en el entorno tradicional de WebSphere Application Server.
Problemas conocidos
- Excepción de captura de datos de primera anomalía en el servidor de transacciones
- Para la configuración avanzada, cuando se especifica el parámetro gridName en el servidor de transacciones en un entorno tradicional de WebSphere Application Server, en el registro se produce una excepción de captura de datos de primera anomalía con respecto al parámetro gridName. Un ejemplo del mensaje de excepción es:
Esta excepción se puede ignorar porque la funcionalidad sigue en marcha y la excepción solo se produce durante el inicio del servidor.FFDC Exception:java.lang.NoSuchFieldException SourceId:com.ibm.ws.util.FieldInitializer ProbeId:133 Reporter:java.lang.Class@fdc0cd34 java.lang.NoSuchFieldException: grid_name ...
- Problema de supervisor de memoria caché en el servidor de transacciones
- El supervisor de memoria caché ampliado se utiliza para analizar el comportamiento de la memoria caché en un entorno tradicional de WebSphere Application Server. Sin embargo, cuando una instancia de memoria caché utiliza WebSphere eXtreme Scale como proveedor de memoria caché no puede ver el contenido de la memoria caché (se visualiza una página en blanco), aunque no haya ningún problema en el supervisor de memoria caché de Liberty.
- Aviso sobre la configuración de conflictos en el servidor de búsqueda y en el servidor de tienda
- La configuración relacionada con WebSphere eXtreme Scale se sitúa en el archivo elasticCache.xml en la carpeta Liberty configDropins. Además, el mismo valor de configuración (por ejemplo, cacheSize) reside en el archivo de configuración predeterminado (server.xml). Un ejemplo del mensaje de aviso de configuración de conflicto en el registro de Liberty es:
Este aviso es el esperado y se puede ignorar.com.ibm.ws.config.xml.internal.ConfigValidator A CWWKG0102I: Found conflicting settings for baseCache instance of distributedMap configuration. Property memorySizeInEntries has conflicting values: Value 1000 is set in file:/opt/WebSphere/Liberty/usr/servers/default/server.xml. Value 2000 is set in file:/opt/WebSphere/Liberty/usr/servers/default/configDropins/overrides/elasticCache.xml. Property memorySizeInEntries will be set to 2000.
Resultado
Ha integrado HCL Commerce con WebSphere eXtreme Scale para mejorar el rendimiento de la implementación de gran volumen.