Azure Event Hubs: recuperación ante desastres geográfica

En este artículo se describe la característica de recuperación ante desastres geográfica que replica metadatos y está disponible con carácter general. No describe la característica de replicación geográfica en versión preliminar pública, que replica tanto los datos como los metadatos. Para obtener más información, consulte Replicación geográfica.

El modelo de clúster de Azure Event Hubs activo con compatibilidad con zona de disponibilidad proporciona resistencia frente a interrupciones de hardware y centro de datos. Sin embargo, si se produce un desastre en el que una región completa y todas las zonas no están disponibles, puede usar la recuperación ante desastres geográfica para recuperar la configuración de la aplicación y la carga de trabajo. La recuperación ante desastres geográfica garantiza que toda la configuración de un espacio de nombres (Event Hubs, Grupos de consumidores y configuraciones) se replique continuamente desde un espacio de nombres principal a un espacio de nombres secundario cuando se empareja.

La característica de recuperación ante desastres con localización geográfica de Azure Event Hubs es una solución de recuperación ante desastres. Los conceptos y el flujo de trabajo descritos en este artículo se aplican a escenarios de desastre y no a interrupciones temporales. Para obtener una explicación detallada de la recuperación ante desastres en Microsoft Azure, consulte este artículo. Con la recuperación ante desastres geográfica, puede iniciar una conmutación por error de solo una vez desde la base de datos principal a la secundaria en cualquier momento. El movimiento de conmutación por error apunta el nombre de alias elegido para el espacio de nombres al espacio de nombres secundario. Después del movimiento, se quita el emparejamiento. La conmutación por error es casi instantánea una vez que se ha iniciado.

Importante

  • La característica permite la continuidad instantánea de las operaciones con la misma configuración, pero no replica los datos de eventos. A menos que el desastre ocasione la pérdida de todas las zonas, los datos de eventos que se conservan en el centro de eventos principal después de la conmutación por error podrán recuperarse y se podrán obtener los eventos históricos de ahí una vez restaurado el acceso. Para replicar los datos de eventos y operar los espacios de nombres correspondientes en configuraciones de tipo activo/activo a fin de hacer frente a interrupciones y desastres, no se incline por este conjunto de características de recuperación ante desastres geográfica. En su lugar, siga la guía de replicación.
  • Las asignaciones de control de acceso basado en rol (RBAC) de Microsoft Entra a entidades en el espacio de nombres principal no se replican en el espacio de nombres secundario. Cree asignaciones de roles manualmente en el espacio de nombres secundario para proteger el acceso a estas.

Términos y conceptos básicos

La característica de recuperación ante desastres implementa la recuperación ante desastres de metadatos y depende de espacios de nombres de recuperación ante desastres principales y secundarios. La característica de recuperación ante desastres geográfica solo está disponible para los niveles estándar, premium y dedicados. No es necesario realizar ningún cambio de la cadena de conexión, ya que la conexión se realiza a través de un alias.

Los siguientes términos se utilizan en este artículo:

  • Alias: el nombre para una configuración de recuperación ante desastres que ha configurado. El alias proporciona una sola cadena de conexión estable de nombre de dominio completo (FQDN). Las aplicaciones usan esta cadena de conexión de alias para conectarse a un espacio de nombres.
  • Espacio de nombres principal o secundario: los espacio de nombres que corresponden al alias. El espacio de nombres principal está activo y recibe mensajes (puede ser un espacio de nombres existente o nuevo). El espacio de nombres secundario es pasivo y no recibe mensajes. Los metadatos entre ambos están sincronizados, por lo que ambos pueden aceptar sin problemas mensajes sin ningún cambio de código de la aplicación o cadena de conexión. Para asegurarse de que solo el espacio de nombres activo recibe mensajes, tiene que utilizar el alias.
  • Metadatos: Entidades como event hubs y grupos de consumidores, y sus propiedades del servicio que están asociados al espacio de nombres. Solo las entidades y sus valores se replican automáticamente. No se replican los mensajes ni los eventos.
  • Conmutación por error: el proceso de activación del espacio de nombres secundario.

Pares de espacios de nombres admitidos

Se admiten las siguientes combinaciones de espacios de nombres principales y secundarios:

Nivel de espacio de nombres principal Nivel de espacio de nombres secundario permitido
Estándar Estándar, dedicado
Premium Premium
Dedicado Dedicado

Importante

No se pueden emparejar espacios de nombres que se encuentran en el mismo clúster dedicado. Puede emparejar espacios de nombres que se encuentran en clústeres independientes.

Flujo de conmutación por error y configuración

La siguiente sección contiene información general del proceso de conmutación por error y explica cómo configurar la conmutación por error inicial.

Captura de pantalla que muestra la información general del proceso de conmutación por error.

Nota:

La característica de recuperación ante desastres geográfica no admite una conmutación automática por error.

Configurar

En primer lugar cree un espacio de nombres principal o use uno ya existente, y un nuevo espacio de nombres secundario, luego emparéjelos. Este emparejamiento le proporciona un alias que puede usar para conectarse. Al usar un alias, no es necesario que cambie las cadenas de conexión. Solo pueden agregarse nuevos espacios de nombres al emparejamiento de la conmutación por error.

  1. Cree el espacio de nombres principal.

  2. Cree el espacio de nombres secundario en una región diferente. Este paso es opcional. Puede crear el espacio de nombres secundario mientras crea el emparejamiento en el paso siguiente.

  3. En Azure Portal, vaya al espacio de nombres principal.

  4. Seleccione Recuperación geográfica en el menú de la izquierda e Iniciar el emparejamiento en la barra de herramientas.

    Captura de pantalla que muestra la página Recuperación geográfica de un espacio de nombres de Event Hubs con el botón Iniciar emparejamiento seleccionado.

  5. En la página Iniciar el emparejamiento, siga estos pasos:

    1. Seleccione un espacio de nombres secundario existente o cree uno en otra región. En este ejemplo, se ha seleccionado un espacio de nombres existente.
    2. En Alias, escriba un alias para el emparejamiento de recuperación ante desastres con localización geográfica.
    3. Seleccione Crear.

    Captura de pantalla que muestra la selección del espacio de nombres secundario para el emparejamiento.

  6. Debería ver la página Geo-DR Alias (Alias de recuperación ante desastres geográfica). Para navegar a esta página desde el espacio de nombres principal, también puede seleccionar la opción Recuperación geográfica en el menú de la izquierda.

    Captura de pantalla que muestra la página Alias de recuperación ante desastres geográfica que muestra los espacios de nombres principal y secundario.

  7. En la página Geo-DR Alias (Alias de recuperación ante desastres geográfica), seleccione Directivas de acceso compartido para acceder a la cadena de conexión principal del alias. Use esta cadena de conexión en lugar de usar directamente la cadena de conexión al espacio de nombres principal o secundario.

  8. En esta página de Información general, puede realizar las siguientes acciones:

    1. Dividir el emparejamiento entre los espacios de nombres principal y secundario. Seleccionar Interrumpir el emparejamiento en la barra de herramientas.

    2. Realizar una conmutar por error de forma manual al espacio de nombres secundario. Seleccione Conmutación por error en la barra de herramientas.

      Captura de pantalla que muestra los menús Emparejamiento de interrupción y conmutación por error en la página Alias de recuperación ante desastres geográfica de Event Hubs.

      Advertencia

      La conmutación por error activa el espacio de nombres secundario y quita el principal del emparejamiento de la recuperación ante desastres geográfica. Cree otro espacio de nombres para tener un nuevo par de recuperación ante desastres geográfica.

Por último, debe agregar alguna supervisión para detectar si es necesario realizar una conmutación por error. En la mayoría de los casos, el servicio es una parte de un ecosistema grande y, por tanto, las conmutaciones automáticas por error rara vez son posibles, ya que a menudo se deben realizar conmutaciones por error sincronizadas con el subsistema o la infraestructura restantes.

Ejemplo

En un ejemplo de este escenario, se considera una solución de punto de venta (POS) que emite mensajes o eventos. Event Hubs pasa esos eventos a alguna solución de asignación o formato, que reenvía los datos asignados a otros sistema para continuar el procesamiento. En ese momento, todos estos sistemas se pueden hospedar en la misma región de Azure. La decisión sobre cuándo y en qué parte se realizará la conmutación por error depende del flujo de datos de su infraestructura.

Puede automatizar la conmutación por error con la supervisión de sistemas, o con soluciones de supervisión personalizadas. Sin embargo, dicha automatización necesita planeamiento y trabajo extra que se encuentran fuera del ámbito de este artículo.

Flujo de conmutación por error

Si inicia la conmutación por error, se requieren dos pasos:

  1. En caso de otra interrupción, tiene que poder volver a realizar la conmutación por error. Por lo tanto, configure un segundo espacio de nombres pasivo y actualice el emparejamiento.
  2. Extraiga mensajes del anterior espacio de nombres primario una vez que vuelva a estar disponible. Después de eso, utilice ese espacio de nombres para la mensajería regular fuera de la configuración de recuperación con localización geográfica, o elimine el espacio de nombres principal antiguo.

Nota

Se admite solo la semántica de conmutación de reenvío. En este escenario, se realiza la conmutación por error y, a continuación, se vuelve a emparejar con un nuevo espacio de nombres. No se admite la conmutación por recuperación, por ejemplo en un clúster de SQL.

Imagen que muestra el flujo de conmutación por error.

Conmutación por error manual

En esta sección se muestra cómo realizar la conmutación por error manualmente con Azure Portal, la CLI, PowerShell, C#, etc.

  1. En Azure Portal, vaya al espacio de nombres principal.

  2. Seleccione Recuperación geográfica en el menú de la izquierda.

  3. Realizar una conmutar por error de forma manual al espacio de nombres secundario. Seleccione Conmutación por error en la barra de herramientas.

    Advertencia

    La conmutación por error activará el espacio de nombres secundario y quitará el espacio de nombres principal del emparejamiento de la recuperación ante desastres geográfica. Cree otro espacio de nombres para tener un nuevo par de recuperación ante desastres geográfica.

Administración

Si ha cometido algún error; por ejemplo, ha emparejado regiones incorrectas durante la configuración inicial, puede interrumpir el emparejamiento de los dos espacios de nombres en cualquier momento. Si desea usar los espacios de nombres emparejados como espacios de nombres normales, elimine el alias.

Consideraciones

Tenga en cuenta y recuerde las siguientes consideraciones:

  1. Por motivos de diseño, la recuperación ante desastres geográfica de Event Hubs no replica datos y, por lo tanto, no se puede volver a usar el valor de desplazamiento anterior del centro de eventos principal en el centro de eventos secundario. Se recomienda reiniciar el receptor de eventos con uno de los siguientes métodos:

    • EventPosition.FromStart() : si quiere leer todos los datos en el centro de eventos secundario.
    • EventPosition.FromEnd() : si quiere leer todos los datos nuevos desde el momento de conexión con el centro de eventos secundario.
    • EventPosition.FromEnqueuedTime(dateTime) : si quiere leer todos los datos recibidos en el centro de eventos secundario a partir de una hora y fecha determinadas.
  2. En el planeamiento de la conmutación por error, también debe considerar el factor de tiempo. Por ejemplo, si se pierde la conectividad durante más de 15 a 20 minutos, puede decidir iniciar la conmutación por error.

  3. El hecho de que no se repliquen datos significa que las sesiones activas en la actualidad no se han replicado. Además, la detección de duplicados y los mensajes programados podrían no funcionar. Funcionarán las nuevas sesiones, los mensajes programados y los duplicados nuevos.

  4. Conmutar por error una compleja infraestructura distribuida debe ensayarse al menos una vez.

  5. La sincronización de entidades puede tardar algún tiempo, aproximadamente 50-100 entidades por minuto.

  6. Algunos aspectos del plano de administración del espacio de nombres secundario se convierten en de solo lectura mientras el emparejamiento de recuperación geográfica está activo.

  7. El plano de datos del espacio de nombres secundario será de solo lectura mientras el emparejamiento de recuperación geográfica está activo. El plano de datos del espacio de nombres secundario aceptará solicitudes GET para habilitar la validación de los controles de acceso y conectividad de cliente.

Puntos de conexión privados

En esta sección se proporcionan más aspectos que hay que tener en cuenta cuando se usa la recuperación ante desastres geográfica con espacios de nombres que emplean puntos de conexión privados. Para obtener información sobre el uso de puntos de conexión privados con Event Hubs en general, consulte Configuración de puntos de conexión privados.

Nuevos emparejamientos

Si intenta crear un emparejamiento entre un espacio de nombres primario con un punto de conexión privado y un espacio de nombres secundario sin un punto de conexión privado, se producirá un error. El emparejamiento solo se realizará correctamente si los espacios de nombres primario y secundario tienen puntos de conexión privados. Se recomienda utilizar las mismas configuraciones en los espacios de nombres principal y secundario y en las redes virtuales en las que se creen los puntos de conexión privados.

Nota

Al intentar emparejar el espacio de nombres principal con un punto de conexión privado y un espacio de nombres secundario, el proceso de validación solo comprueba si existe un punto de conexión privado en el espacio de nombres secundario. No comprueba si el punto de conexión funciona ahora o funcionará después de la conmutación por error. Es su responsabilidad asegurarse de que el espacio de nombres secundario con el punto de conexión privado funcionará según lo esperado después de la conmutación por error.

Para probar que las configuraciones de punto de conexión privado son iguales en los espacios de nombres primario y secundario, envíe una solicitud de lectura (por ejemplo: Get Event Hub) al espacio de nombres secundario desde fuera de la red virtual y compruebe que recibe un mensaje de error del servicio.

Emparejamientos existentes

Si ya existe un emparejamiento entre el espacio de nombres primario y el secundario, se producirá un error en la creación del punto de conexión privado en el espacio de nombres primario. Para resolverlo, cree primero un punto de conexión privado en el espacio de nombres secundario y, a continuación, cree uno para el espacio de nombres primario.

Nota

Aunque se permite el acceso de solo lectura al espacio de nombres secundario, no se permiten las actualizaciones de las configuraciones de punto de conexión privado.

Al crear una configuración de recuperación ante desastres para la aplicación y los espacios de nombres de Event Hubs, debe crear puntos de conexión privados para los espacios de nombres de Event Hubs primario y secundario en las redes virtuales que hospeden las instancias primarias y secundarias de la aplicación.

Supongamos que tiene dos redes virtuales: VNET-1, VNET-2 y estos espacios de nombres principal y secundario: EventHubs-Namespace1-Primary, EventHubs-Namespace2-Secondary. Debe seguir estos pasos:

  • En EventHubs-Namespace1-Primary, cree dos puntos de conexión privados que usen subredes de VNET-1 y VNET-2
  • En EventHubs-Namespace2-Secondary, cree dos puntos de conexión privados que usen las mismas subredes de VNET-1 y VNET-2

Puntos de conexión privados y redes virtuales

La ventaja de este enfoque es que la conmutación por error puede producirse en el nivel de aplicación independiente del espacio de nombres de Event Hubs. Considere los casos siguientes:

_Conmutación por error solo de aplicación: en este caso, la aplicación no existirá en VNET-1, sino que se moverá a VNET-2. Como ambos puntos de conexión privados están configurados tanto en VNET-1 como en VNET-2 para los espacios de nombres primario y secundario, la aplicación funcionará.

Conmutación por error solo del espacio de nombres de Event Hubs: en este caso, dado que los dos puntos de conexión privados están configurados en ambas redes virtuales para los espacios de nombres primario y secundario, la aplicación funcionará.

Nota

Para obtener instrucciones sobre la recuperación ante desastres con localización geográfica de una red virtual, consulte Virtual Network: continuidad del negocio.

Control de acceso basado en rol

Las asignaciones de control de acceso basado en rol (RBAC) de Microsoft Entra a entidades en el espacio de nombres principal no se replican en el espacio de nombres secundario. Cree asignaciones de roles manualmente en el espacio de nombres secundario para proteger el acceso a estas.

Revise los ejemplos siguientes o la documentación de referencia.