Compartir a través de


Compatibilidad con varios clústeres

Importante

La compatibilidad con varios clústeres se quitó en Orleans v2. La documentación siguiente hace referencia a Orleans v1.

Orleans v1.3.0 agregó compatibilidad para federar varios Orleans clústeres en un clúster múltiple conectado flexiblemente que actúa como un único servicio. Los clústeres múltiples facilitan la distribución geográfica como servicio, lo que facilita la ejecución de una Orleans aplicación en varios centros de datos de todo el mundo. También puede ejecutar un clúster múltiple dentro de un único centro de datos para obtener un mejor aislamiento de rendimiento y errores.

Todos los mecanismos están diseñados con especial atención a:

  1. Minimice la comunicación entre clústeres.
  2. Deje que cada clúster se ejecute de forma autónoma, aunque otros clústeres produzcan un error o se vuelvan inaccesibles.

Configuración y funcionamiento

A continuación, se documenta cómo configurar y operar un clúster múltiple.

Comunicación: los clústeres se comunican a través de las mismas conexiones de silo a silo que se usan en un clúster. Para intercambiar información de estado y configuración, los clústeres usan un mecanismo de chismes y implementaciones del canal de chismes.

Configuración de silo: debe configurar silos para saber a qué clúster pertenecen (cada clúster se identifica mediante una cadena única). Además, debe configurar cada silo con cadenas de conexión que le permitan conectarse a uno o varios canales de chismes al iniciarse.

Inserción de configuración de varios clústeres: en tiempo de ejecución, el operador de servicio puede especificar o cambiar la configuración de varios clústeres, que contiene una lista de identificadores de clúster, para especificar qué clústeres forman parte del clúster múltiple actual. Para ello, llame al componente de gestión en cualquiera de los clústeres.

Granos de varios clústeres

A continuación, se documenta cómo usar la funcionalidad de varios clústeres en el nivel de aplicación.

Global-Single-Instance Granos: puede indicar cuándo y cómo los clústeres deben coordinar sus directorios de grano para una clase de grano determinada. GlobalSingleInstanceAttribute significa que quiere el mismo comportamiento que cuando se ejecuta Orleans en un único clúster global: enrutar todas las llamadas a una sola activación del grain. Por el contrario, OneInstancePerClusterAttribute indica que cada clúster puede tener su activación independiente. Esto es adecuado si no desea la comunicación entre clústeres.

Log-view grains(no en la versión 1.3.0): Un tipo especial de grain que usa una nueva API, similar a event sourcing, para sincronizar o conservar el estado del grain. Puede usarlo para sincronizar de forma automática y eficaz el estado de un grano entre clústeres y con almacenamiento. Dado que sus algoritmos de sincronización son seguros para su uso con granos reentrantes y están optimizados para el procesamiento por lotes y la replicación, puede funcionar mejor que los granos estándar cuando se accede con frecuencia a un grano en varios clústeres o se escriben en el almacenamiento con frecuencia. La compatibilidad con granos de visualización de registros aún no forma parte de la rama principal. Tenemos una versión preliminar que incluye ejemplos y algo de documentación en la geo-orleans rama. Actualmente se está evaluando en producción por un usuario pionero.