Condividi tramite


Hub eventi e affidabilità

Hub eventi di Azure è un servizio scalabile di elaborazione degli eventi che inserisce ed elabora grandi volumi di eventi e dati, con latenza bassa e affidabilità elevata. È in grado di ricevere ed elaborare milioni di eventi al secondo. I dati inviati a un hub eventi possono essere trasformati e archiviati usando qualsiasi provider di analisi in tempo reale o adapter di invio in batch e archiviazione.

Per altre informazioni sull'uso di Hub eventi e su come inserire milioni di eventi al secondo provenienti da applicazioni e dispositivi connessi, vedere la documentazione di Hub eventi di Azure.

Per informazioni su come l'uso di Hub eventi consente di creare un carico di lavoro più affidabile, vedere Hub eventi di Azure - Ripristino di emergenza geografico.

Le sezioni seguenti sono specifiche per Hub eventi di Azure e l'affidabilità:

  • Considerazioni relative alla progettazione
  • Elenco di controllo configurazione
  • Opzioni consigliate per la configurazione
  • Artefatti di origine

Considerazioni relative alla progettazione

Hub eventi di Azure prevede un Contratto di servizio per il tempo di attività. Per altre informazioni, vedere Contratto di servizio per Hub eventi.

Elenco di controllo

Hub eventi di Azure è stato configurato tenendo presente l'affidabilità?

  • Creare i criteri SendOnly e ListenOnly rispettivamente per l'autore e il consumer di eventi.
  • Se si usa un SDK per inviare eventi a Hub eventi, verificare che le eccezioni generate dai criteri di ripetizione (EventHubsException o OperationCancelledException) vengano rilevate correttamente.
  • Negli scenari con velocità effettiva elevata, usare eventi in batch.
  • Ogni consumer può leggere gli eventi da una 32 partizioni.
  • Se si sviluppano nuove applicazioni, usare EventProcessorClient (.NET e Java) o EventHubConsumerClient (Python e JavaScript) come SDK client.
  • Come parte della strategia di disponibilità e ripristino di emergenza a livello di soluzione, è consigliabile abilitare l'opzione di ripristino di emergenza geografico di Hub eventi.
  • Se una soluzione include un numero elevato di autori di eventi indipendenti, è consigliabile usare gli autori di eventi per un controllo di accesso con granularità fine.
  • Non pubblicare eventi in una partizione specifica.
  • Se si pubblicano spesso eventi, usare il protocollo AMQP quando possibile.
  • Il numero di partizioni riflette il grado di parallelismo downstream che è possibile ottenere.
  • Assicurarsi che ogni applicazione consumer usi un gruppo di consumer separato e che sia presente un solo ricevitore attivo per ogni gruppo di consumer.
  • Se si usa la funzionalità di acquisizione, valutare attentamente la configurazione dell'intervallo di tempo e delle dimensioni dei file, in particolare con volumi ridotti di eventi.

Raccomandazioni per la configurazione

Esaminare le raccomandazioni seguenti per ottimizzare l'affidabilità durante la configurazione di Hub eventi di Azure:

Recommendation Descrizione
Se si usa un SDK per inviare eventi a Hub eventi, verificare che le eccezioni generate dai criteri di ripetizione (EventHubsException o OperationCancelledException) vengano rilevate correttamente. Se si usa HTTPS, assicurarsi che sia implementato un modello di ripetizione dei tentativi appropriato.
Negli scenari con velocità effettiva elevata, usare eventi in batch. Il servizio distribuirà ai sottoscrittori una matrice json con più eventi invece che con uno solo. L'applicazione consumer deve elaborare queste matrici.
Ogni consumer può leggere gli eventi da una 32 partizioni. Per ottenere la scalabilità massima sul lato dell'applicazione consumer, ogni consumer deve leggere da una singola partizione.
Se si sviluppano nuove applicazioni, usare EventProcessorClient (.NET e Java) o EventHubConsumerClient (Python e JavaScript) come SDK client. EventProcessorHost è stato deprecato.
Come parte della strategia di disponibilità e ripristino di emergenza a livello di soluzione, è consigliabile abilitare l'opzione di ripristino di emergenza geografico di Hub eventi. Questa opzione consente la creazione di uno spazio dei nomi secondario in un'area diversa. Solo lo spazio dei nomi attivo riceve messaggi in qualsiasi momento. I messaggi e gli eventi non vengono replicati nell'area secondaria. L'RTO per il failover a livello di area è fino a 30 minuti. Verificare che questo RTO sia in linea con i requisiti del cliente e rientri nella strategia di disponibilità di più ampio respiro. Se è necessario un RTO superiore, valutare la possibilità di implementare un criterio di failover sul lato client.
Se una soluzione include un numero elevato di autori di eventi indipendenti, è consigliabile usare gli autori di eventi per un controllo di accesso con granularità fine. Gli autori di eventi impostano automaticamente la chiave di partizione sul nome dell'autore, quindi questa funzionalità deve essere usata solo se gli eventi provengono da tutti gli autori in modo uniforme.
Non pubblicare eventi in una partizione specifica. Se l'ordinamento degli eventi è essenziale, implementare l'ordinamento downstream o in alternativa usare un servizio di messaggistica diverso.
Se si pubblicano spesso eventi, usare il protocollo AMQP quando possibile. AMQP prevede costi di rete più elevati durante l'inizializzazione della sessione, mentre HTTPS richiede un sovraccarico TLS aggiuntivo per ogni richiesta. AMQP offre prestazioni più elevate per i server di pubblicazione più attivi.
Il numero di partizioni riflette il grado di parallelismo downstream che è possibile ottenere. Per la velocità effettiva massima, usare il numero massimo di partizioni (32) durante la creazione dell'hub eventi. Il numero massimo di partizioni consente di aumentare le entità di elaborazione simultanee fino a 32 e offre la massima disponibilità di invio e ricezione.
Se si usa la funzionalità di acquisizione, valutare attentamente la configurazione dell'intervallo di tempo e delle dimensioni dei file, in particolare con volumi ridotti di eventi. Per Data Lake verranno addebitati i costi per le dimensioni minime dei file per l'archiviazione (gen1) o per le dimensioni minime delle transazioni (gen2). Se si imposta l'intervallo di tempo su un valore talmente basso per cui il file non raggiunge le dimensioni minime, si incorrerà in costi aggiuntivi.

Artefatti di origine

Per trovare gli spazi dei nomi di Hub eventi con lo SKU Basic, usare la query seguente:

Resources 
| where type == 'microsoft.eventhub/namespaces'
| where sku.name == 'Basic'
| project resourceGroup, name, sku.name

Passaggio successivo