Prácticas recomendadas para el desarrollo de soluciones > Prácticas recomendadas para aplicaciones de alta disponibilidad
Prácticas recomendadas para aplicaciones de alta disponibilidad
La escritura correcta de JavaScript y la reducción de los recorridos de ida y vuelta a ThingWorx Platform siempre ayudarán a mejorar el rendimiento. Para soportar el modo de clúster de alta disponibilidad en ThingWorx 9, el almacenamiento y el uso del modelo se han cambiado y se ha implementado un mecanismo de estado compartido para conservar los datos sincronizados en los servidores. Estos cambios afectan al rendimiento de determinadas API, ya que realizan más trabajo que antes para recuperar la misma información. El código cuyo rendimiento no se haya optimizado anteriormente puede ser mucho más lento en ThingWorx 9 y podría ser muy lento en un entorno de agrupación.
La información del modelo ya no se almacena en la cosa; el sistema recorre el árbol del modelo cada vez para obtener la información del modelo. Todas las API que recuperan información de cosa se ven afectadas.
Todos los estados de servicio de JavaScript se almacenan ahora en una capa de caché.
En el modo de servidor único, se trata de una caché en la memoria que es bastante rápida, pero tiene más sobrecarga que simplemente almacenar en el objeto de cosa. Cuando se ejecuta en modo de clúster, la caché se distribuye y cada llamada realiza un recorrido de ida y vuelta a un host remoto. Esto puede añadir latencia a las llamadas y no se puede controlar fácilmente.
La capa de caché puede ser local o remota. El nuevo sistema vuelve a crear un proxy unidireccional del objeto JavaScript en el objeto original. Por lo tanto, todos los cambios que se realicen en el objeto JavaScript activan una actualización completa de la propiedad en el objeto original. Además, los cambios en el objeto original no se reflejan en el objeto JavaScript.
Todo se debe tratar como un objeto remoto. Con los objetos remotos, se recomienda realizar el menor número de llamadas posible a través de la brecha remota para eliminar la latencia. Se debe aplicar el mismo enfoque al llamar a las API del servidor. Cuanto menos llamadas, mejor.
¿Fue esto útil?