En un entorno de clúster, el procesamiento se comparte entre dos o más instancias del servidor. El siguiente diagrama ilustra la arquitectura de implementación de tal configuración. El equilibrio de carga se puede usar para admitir alta disponibilidad y escalamiento. La arquitectura de implementación incluye un equilibrador de carga, un clúster de Spectrum Spatial, una base de datos y un recurso compartido de archivos. Con este enfoque, es posible realizar un escalamiento horizontal y vertical. Spatial se puede agrupar con o sin la plataforma de clústeres.
- La sincronización de seguridad (ACL) ocurre en forma automática para recursos con nombre designado.
- Los flujos de datos, usuarios y roles creados en el nodo se sincronizan automáticamente con todos los nodos.
- Todas las páginas de demostración y utilidades de Spatial (como Spectrum Spatial Manager) pueden y deberían apuntar al equilibrador de carga.
Equilibrador de carga
El equilibrador de carga distribuye las solicitudes entre las instancias de Spectrum Spatial. Se puede usar cualquier equilibrio de carga que admita solicitudes de HTTP/HTTPS de equilibrio de carga.
Spectrum Spatial Clúster
El clúster es una colección de instancias de Spectrum con administración de uso compartido de Spatial, recursos con nombre, contenido de metadatos geográficos y ajustes de configuración. Se pueden agregar nodos adicionales al clúster para brindar resistencia o para entregar compatibilidad para cargas mayores. Cada nodo se puede escalar verticalmente a través de recursos adicionales de hardware o instancias adicionales, en el caso de que esto se requiera para hardware con recursos masivos. Spectrum se puede configurar para usar una cantidad restringida de CPU.
Base de datos
Spectrum almacena los recursos con nombre asignado (mapas, capas, tablas y estilos), metadatos geográficos y configuración en un repositorio. En la instalación predeterminada de un solo servidor se usa una base de datos incrustada, para almacenar estos recursos en un servidor local. Para crear una solución escalable resistente, esta base de datos incrustada se debe reemplazar por una base de datos independiente y resistente. Oracle, PostGreSQL/PostGIS y Microsoft SQL Server son las bases de datos del repositorio compatibles.
En la configuración de carga equilibrada, los nodos de Spectrum copian en caché estos recursos en un índice de búsqueda y caché local en cada nodo en el clúster. Cuando un servicio Spectrum recibe una solicitud, este usa el índice y caché local para encontrar los recursos. Se pueden agregar recursos con nombre asignado a través de cualquier nodo en el clúster. Cada nodo mantiene actualizada su memoria caché al buscar diferencias entre su caché local y la base de datos central. Esta búsqueda ocurre cada 2 segundos de manera predeterminada. La frecuencia de tiempo se puede configurar. Esta arquitectura garantiza que el servidor entregue transacciones de alto rendimiento y que se mantenga en un nivel mínimo la carga en la base de datos del repositorio. Si se agrega un nuevo nodo Spectrum al clúster, la memoria caché y el índice se crean automáticamente. Dicha situación puede ocurrir para solucionar la falla de un nodo o para aumentar la capacidad de la implementación.