Hub eventi di Azure - Ripristino di emergenza geograficoAzure Event Hubs - Geo-disaster recovery

In caso di tempo di inattività di interi data center o aree di Azure (se non vengono usate zone di disponibilità), è essenziale che l'elaborazione dei dati continui in un'area o in un data center diverso.When entire Azure regions or datacenters (if no availability zones are used) experience downtime, it is critical for data processing to continue to operate in a different region or datacenter. Il ripristino di emergenza geografico e la replica geografica sono quindi funzionalità importanti per qualsiasi azienda.As such, Geo-disaster recovery and Geo-replication are important features for any enterprise. Il servizio Hub eventi di Azure supporta il ripristino di emergenza geografico e la replica geografica a livello di spazio dei nomi.Azure Event Hubs supports both geo-disaster recovery and geo-replication, at the namespace level. 

Nota

La funzionalità di ripristino di emergenza geografico è disponibile solo per gli SKU standard e dedicati.The Geo-disaster recovery feature is only available for the standard and dedicated SKUs.

Emergenze e interruzioniOutages and disasters

È importante notare la distinzione tra "interruzioni" ed "emergenze".It's important to note the distinction between "outages" and "disasters." Un'interruzione è l'indisponibilità temporanea di Hub eventi di Azure e può interessare alcuni componenti del servizio, ad esempio un archivio di messaggistica, oppure l'intero data center.An outage is the temporary unavailability of Azure Event Hubs, and can affect some components of the service, such as a messaging store, or even the entire datacenter. Dopo la risoluzione del problema, tuttavia, Hub eventi torna di nuovo disponibile.However, after the problem is fixed, Event Hubs becomes available again. In genere, un'interruzione non determina la perdita di messaggi o di altri dati.Typically, an outage does not cause the loss of messages or other data. Un'interruzione può essere provocata ad esempio da un'interruzione dell'alimentazione nel data center.An example of such an outage might be a power failure in the datacenter. Alcune interruzioni sono solo brevi perdite di connessione dovute a problemi di rete o temporanei.Some outages are only short connection losses due to transient or network issues.

Il termine emergenza indica la perdita permanente o a lungo termine di un cluster di Hub eventi, un'area di Azure o un data center.A disaster is defined as the permanent, or longer-term loss of an Event Hubs cluster, Azure region, or datacenter. L'area o il data center potrebbe o meno tornare di nuovo disponibile oppure potrebbe rimanere inattivo per ore o giorni.The region or datacenter may or may not become available again, or may be down for hours or days. Un'emergenza può essere causata, ad esempio, da un incendio, un'inondazione o un terremoto.Examples of such disasters are fire, flooding, or earthquake. Una situazione di emergenza che diventa permanente potrebbe causare la perdita di alcuni messaggi, eventi o altri dati.A disaster that becomes permanent might cause the loss of some messages, events, or other data. Tuttavia, nella maggior parte dei casi non dovrebbe esserci perdita di dati e i messaggi possono essere ripristinati dopo aver eseguito il backup del data center.However, in most cases there should be no data loss and messages can be recovered once the data center is back up.

La funzionalità di ripristino di emergenza geografico di Hub eventi di Azure è una soluzione di ripristino di emergenza.The Geo-disaster recovery feature of Azure Event Hubs is a disaster recovery solution. I concetti e il flusso di lavoro illustrati in questo articolo sono applicabili a scenari di emergenza, non a interruzioni temporanee.The concepts and workflow described in this article apply to disaster scenarios, and not to transient, or temporary outages. Per una descrizione dettagliata del ripristino di emergenza in Microsoft Azure, vedere questo articolo.For a detailed discussion of disaster recovery in Microsoft Azure, see this article.

Concetti e terminologia di baseBasic concepts and terms

La funzionalità di ripristino di emergenza implementa il ripristino di emergenza dei metadati e si basa sugli spazi dei nomi primari e secondari di ripristino di emergenza.The disaster recovery feature implements metadata disaster recovery, and relies on primary and secondary disaster recovery namespaces.

La funzionalità di ripristino di emergenza geografico è disponibile solo per gli SKU standard e dedicati .The Geo-disaster recovery feature is available for the standard and dedicated SKUs only. Non è necessario apportare modifiche alla stringa di connessione, perché la connessione viene effettuata tramite un alias.You do not need to make any connection string changes, as the connection is made via an alias.

In questo articolo viene usata la terminologia seguente:The following terms are used in this article:

  • Alias: nome per una configurazione di ripristino di emergenza impostata.Alias: The name for a disaster recovery configuration that you set up. L'alias fornisce una singola stringa di connessione FQDN (nome di dominio completo) stabile.The alias provides a single stable Fully Qualified Domain Name (FQDN) connection string. Le applicazioni usano questa stringa di connessione alias per connettersi a uno spazio dei nomi.Applications use this alias connection string to connect to a namespace.

  • Spazio dei nomi primario/secondario: spazi dei nomi corrispondenti all'alias.Primary/secondary namespace: The namespaces that correspond to the alias. Lo spazio dei nomi primario è "attivo" e riceve i messaggi (può essere uno spazio dei nomi esistente o nuovo).The primary namespace is "active" and receives messages (this can be an existing or new namespace). Lo spazio dei nomi secondario è "passivo" e non riceve i messaggi.The secondary namespace is "passive" and does not receive messages. I metadati vengono sincronizzati tra entrambi gli spazi dei nomi, quindi entrambi possono facilmente accettare messaggi senza modifiche al codice dell'applicazione o alla stringa di connessione.The metadata between both is in sync, so both can seamlessly accept messages without any application code or connection string changes. Per fare in modo che solo lo spazio dei nomi attivo riceva i messaggi, è necessario usare l'alias.To ensure that only the active namespace receives messages, you must use the alias.

  • Metadati: entità come hub eventi e gruppi di consumer e le relative proprietà del servizio associate allo spazio dei nomi.Metadata: Entities such as event hubs and consumer groups; and their properties of the service that are associated with the namespace. Si noti che solo le entità e le relative impostazioni vengono replicate automaticamente.Note that only entities and their settings are replicated automatically. I messaggi e gli eventi non vengono replicati.Messages and events are not replicated.

  • Failover: processo di attivazione dello spazio dei nomi secondario.Failover: The process of activating the secondary namespace.

Coppie di spazi dei nomi supportateSupported namespace pairs

Sono supportate le seguenti combinazioni di spazi dei nomi primari e secondari:The following combinations of primary and secondary namespaces are supported:

Spazio dei nomi primarioPrimary namespace Spazio dei nomi secondarioSecondary namespace SupportatoSuppported
StandardStandard StandardStandard Yes
StandardStandard DedicatoDedicated YesYes
DedicatoDedicated DedicatoDedicated Yes
DedicatoDedicated StandardStandard NoNo

Nota

Non è possibile associare gli spazi dei nomi presenti nello stesso cluster dedicato.You can't pair namespaces that are in the same dedicated cluster. È possibile associare spazi dei nomi che si trovano in cluster distinti.You can pair namespaces that are in separate clusters.

Configurazione e flusso del failoverSetup and failover flow

La sezione seguente è una panoramica del processo di failover e illustra come configurare il failover iniziale.The following section is an overview of the failover process, and explains how to set up the initial failover.

1

ConfigurazioneSetup

È prima di tutto necessario creare uno spazio dei nomi primario o usarne uno esistente e creare un nuovo spazio dei nomi secondario, quindi associare i due spazi dei nomi.You first create or use an existing primary namespace, and a new secondary namespace, then pair the two. L'associazione fornisce un alias che può essere usato per la connessione.This pairing gives you an alias that you can use to connect. Poiché si usa un alias, non è necessario modificare le stringhe di connessione.Because you use an alias, you do not have to change connection strings. È possibile aggiungere solo nuovi spazi dei nomi all'associazione di failover.Only new namespaces can be added to your failover pairing. Infine, è necessario aggiungere funzionalità di monitoraggio per rilevare i casi in cui è necessario un failover.Finally, you should add some monitoring to detect if a failover is necessary. Nella maggior parte dei casi, il servizio fa parte di un ecosistema di grandi dimensioni, quindi i failover automatici sono raramente possibili, in quanto molto spesso i failover devono essere eseguiti in sincronizzazione con il sottosistema o l'infrastruttura rimanente.In most cases, the service is one part of a large ecosystem, thus automatic failovers are rarely possible, as very often failovers must be performed in sync with the remaining subsystem or infrastructure.

EsempioExample

In un esempio di questo scenario, si consideri una soluzione POS che genera messaggi o eventi.In one example of this scenario, consider a Point of Sale (POS) solution that emits either messages or events. Hub eventi passa gli eventi a una soluzione di mapping o riformattazione, che quindi inoltra i dati mappati a un altro sistema per un'ulteriore elaborazione.Event Hubs passes those events to some mapping or reformatting solution, which then forwards mapped data to another system for further processing. A questo punto, tutti questi sistemi possono essere ospitati nella stessa area di Azure.At that point, all of these systems might be hosted in the same Azure region. La decisione relativa a quando eseguire il failover o di quale parte del sistema dipende dal flusso di dati nell'infrastruttura.The decision on when and what part to fail over depends on the flow of data in your infrastructure.

È possibile automatizzare il failover con sistemi di monitoraggio o con soluzioni di monitoraggio personalizzate.You can automate failover either with monitoring systems, or with custom-built monitoring solutions. Tale automazione, tuttavia, richiede pianificazione e lavoro aggiuntivi che esulano dall'ambito di questo articolo.However, such automation takes extra planning and work, which is out of the scope of this article.

Flusso del failoverFailover flow

Se si avvia il failover, sono necessari due passaggi:If you initiate the failover, two steps are required:

  1. È necessario potere eseguire di nuovo il failover nel caso in cui si verifichi un'altra interruzione.If another outage occurs, you want to be able to failover again. Configurare quindi un altro spazio dei nomi passivo e aggiornare l'associazione.Therefore, set up another passive namespace and update the pairing.

  2. Eseguire il pull dei messaggi dallo spazio dei nomi primario precedente quando è di nuovo disponibile.Pull messages from the former primary namespace once it is available again. Successivamente, usare tale spazio dei nomi per la messaggistica regolare di fuori della configurazione del ripristino geografico oppure eliminare lo spazio dei nomi primario precedente.After that, use that namespace for regular messaging outside of your geo-recovery setup, or delete the old primary namespace.

Nota

È supportata solo la semantica di inoltro in caso di errore.Only fail forward semantics are supported. In questo scenario, si esegue il failover e quindi si esegue di nuovo l'associazione con un nuovo spazio dei nomi.In this scenario, you fail over and then re-pair with a new namespace. Il failback, ad esempio in un cluster SQL, non è supportato.Failing back is not supported; for example, in a SQL cluster.

2

GestioneManagement

Se si commette un errore, ad esempio associando le aree non corrette durante la configurazione iniziale, è possibile interrompere l'associazione dei due spazi dei nomi in qualsiasi momento.If you made a mistake; for example, you paired the wrong regions during the initial setup, you can break the pairing of the two namespaces at any time. Per usare gli spazi dei nomi associati come normali spazi dei nomi, eliminare l'alias.If you want to use the paired namespaces as regular namespaces, delete the alias.

EsempiSamples

L'esempio su GitHub illustra come configurare e avviare un failover.The sample on GitHub shows how to set up and initiate a failover. L'esempio illustra i concetti seguenti:This sample demonstrates the following concepts:

  • Impostazioni necessarie in Azure Active Directory per usare Azure Resource Manager con Hub eventi.Settings required in Azure Active Directory to use Azure Resource Manager with Event Hubs.
  • Passaggi necessari per eseguire il codice di esempio.Steps required to execute the sample code.
  • Invio e ricezione dallo spazio dei nomi primario corrente.Send and receive from the current primary namespace.

ConsiderazioniConsiderations

Tenere presente le considerazioni seguenti per questa versione:Note the following considerations to keep in mind with this release:

  1. Per impostazione predefinita, il ripristino di emergenza geografico di hub eventi non replica i dati e pertanto non è possibile riusare il valore di offset precedente dell'hub eventi primario nell'hub eventi secondario.By design, Event Hubs geo-disaster recovery does not replicate data, and therefore you cannot reuse the old offset value of your primary event hub on your secondary event hub. Si consiglia di riavviare il ricevitore di eventi con uno dei seguenti elementi:We recommend restarting your event receiver with one of the following:
  • EventPosition. FromStart () : se si desidera leggere tutti i dati nell'hub eventi secondario.EventPosition.FromStart() - If you wish read all data on your secondary event hub.
  • EventPosition. FromEnd () : se si vogliono leggere tutti i nuovi dati dal momento della connessione all'hub eventi secondario.EventPosition.FromEnd() - If you wish to read all new data from the time of connection to your secondary event hub.
  • EventPosition. FromEnqueuedTime (DateTime) : se si vuole leggere tutti i dati ricevuti nell'hub eventi secondario a partire da una data e un'ora specificate.EventPosition.FromEnqueuedTime(dateTime) - If you wish to read all data received in your secondary event hub starting from a given date and time.
  1. Quando si pianifica il failover, è consigliabile considerare anche il fattore tempo.In your failover planning, you should also consider the time factor. Ad esempio, se si perde la connettività per più di 15-20 minuti, è possibile decidere di avviare il failover.For example, if you lose connectivity for longer than 15 to 20 minutes, you might decide to initiate the failover.

  2. Il fatto che non vengano replicati dati significa che le sessioni attive non vengono replicate.The fact that no data is replicated means that currently active sessions are not replicated. Il rilevamento dei duplicati e i messaggi pianificati potrebbero inoltre non funzionare.Additionally, duplicate detection and scheduled messages may not work. Le nuove sessioni, i messaggi pianificati e i nuovi duplicati funzioneranno.New sessions, scheduled messages, and new duplicates will work.

  3. È necessario provare a eseguire il failover di un'infrastruttura distribuita complessa almeno una volta.Failing over a complex distributed infrastructure should be rehearsed at least once.

  4. La sincronizzazione delle entità può richiedere tempo, circa un minuto per 50-100 entità.Synchronizing entities can take some time, approximately 50-100 entities per minute.

Zone di disponibilitàAvailability Zones

Lo SKU Standard di Hub eventi supporta le zone di disponibilità di Azure fornendo località con isolamento di errore all'interno di un'area di Azure.The Event Hubs Standard SKU supports Availability Zones, providing fault-isolated locations within an Azure region.

Nota

Il supporto per le zone di disponibilità per lo SKU standard di Hub eventi di Azure è disponibile solo nelle aree di Azure in cui sono presenti le zone di disponibilità.The Availability Zones support for Azure Event Hubs Standard is only available in Azure regions where availability zones are present.

Usando il portale di Azure, è possibile abilitare le zone di disponibilità solo negli spazi dei nomi.You can enable Availability Zones on new namespaces only, using the Azure portal. Hub eventi non supporta la migrazione degli spazi dei nomi esistenti.Event Hubs does not support migration of existing namespaces. Non è possibile disabilitare la ridondanza della zona dopo che è stata abilitata nello spazio dei nomi.You cannot disable zone redundancy after enabling it on your namespace.

3

Passaggi successiviNext steps

  • L'esempio disponibile in GitHub illustra in dettaglio un semplice flusso di lavoro per la creazione di un'associazione geografica e l'avvio di un failover per uno scenario di ripristino di emergenza.The sample on GitHub walks through a simple workflow that creates a geo-pairing and initiates a failover for a disaster recovery scenario.
  • Nella informazioni di riferimento sulle API del servizio REST sono descritte le API che consentono di eseguire la configurazione del ripristino di emergenza geografico.The REST API reference describes APIs for performing the Geo-disaster recovery configuration.

Per altre informazioni su Hub eventi, vedere i collegamenti seguenti:For more information about Event Hubs, visit the following links: