Condividi tramite


Pratiche migliori per l'architettura di Azure Event Hubs

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

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

Per comprendere i modi in cui l'uso di Hub eventi consente di ottenere l'eccellenza operativa e l'affidabilità per il carico di lavoro, fare riferimento agli articoli seguenti:

Le sezioni seguenti sono specifiche di Hub eventi di Azure dal punto di vista di Well Architected Framework:

  • Considerazioni sulla progettazione
  • Elenco di controllo della configurazione
  • Opzioni di configurazione consigliate
  • Artefatti di origine

Considerazioni sulla progettazione

Hub eventi di Azure offre uno SLA di disponibilità. Per altre informazioni, vedere Contratto di servizio per Hub eventi.

Lista di controllo

Hub eventi di Azure è stato configurato tenendo presente l'eccellenza operativa?

  • Creare rispettivamente i criteri SendOnly e ListenOnly per l'editore di eventi e il consumer.
  • Quando si usa SDK per inviare eventi a Hub di eventi, assicurarsi che le eccezioni generate dalla politica di ripetizione (EventHubsException o OperationCancelledException) vengano rilevate correttamente.
  • Negli scenari con alto flusso di dati, è consigliabile usare eventi in batch.
  • Ogni consumer può leggere gli eventi da una a un massimo di partizioni supportate dallo SKU di Hub eventi
  • Quando 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, valutare la possibilità di abilitare l'opzione di ripristino di emergenza geografico di Hub eventi.
  • Quando una soluzione dispone di un numero elevato di editori di eventi indipendenti, è consigliabile usare editori di eventi per il controllo di accesso con granularità fine.
  • Non pubblicare eventi in una partizione specifica.
  • Quando si pubblicano eventi di frequente, usare il protocollo AMQP quando possibile.
  • Il numero di partizioni riflette il grado di parallelismo downstream che è possibile ottenere.
  • Assicurarsi che ogni applicazione consumatrice utilizzi un gruppo di consumatori separato e che sia presente un solo ricevitore attivo per ciascun gruppo di consumatori.
  • Quando si usa la funzionalità Di acquisizione, considerare attentamente la configurazione dell'intervallo di tempo e delle dimensioni del file, soprattutto con volumi di eventi bassi.

Consigli sulla configurazione

Considerare i consigli seguenti per ottimizzare l'affidabilità durante la configurazione di Hub eventi di Azure:

Raccomandazione Descrizione
Quando si usa l'SDK per inviare eventi a Hub eventi, assicurarsi che le eccezioni generate dai criteri di ripetizione dei tentativi (EventHubsException o OperationCancelledException) vengano rilevate correttamente. Quando si usa HTTPS, assicurarsi che venga implementato un modello di ripetizione dei tentativi appropriato.
Negli scenari con alto flusso di dati, è consigliabile usare eventi in batch. Il servizio fornirà una json matrice con più eventi ai sottoscrittori, anziché una matrice con un evento. L'applicazione che consuma deve elaborare queste matrici.
Ogni consumer può leggere gli eventi da una a un massimo di partizioni supportate dallo SKU di Hub eventi. Per ottenere la scalabilità massima dal lato dell'applicazione consumatrice, ogni consumatore deve leggere da una singola partizione.
Quando si sviluppano nuove applicazioni, usare EventProcessorClient (.NET e Java) o EventHubConsumerClient (Python e JavaScript) come SDK client. EventProcessorHost è obsoleto.
Come parte della strategia di disponibilità e ripristino di emergenza a livello di soluzione, valutare la possibilità di 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. Il tempo di recupero RTO per il failover regionale è fino a 30 minuti. Conferma che questo RTO sia allineato ai requisiti del cliente in questione e si adatti alla strategia generale di disponibilità. Se è necessario un RTO superiore, prendere in considerazione l'implementazione di un modello di failover lato client.
Quando una soluzione dispone di un numero elevato di editori di eventi indipendenti, è consigliabile usare editori di eventi per il controllo di accesso con granularità fine. I server di pubblicazione eventi impostano automaticamente la chiave di partizione sul nome del server di pubblicazione, pertanto questa funzionalità deve essere usata solo se gli eventi provengono da tutti gli editori in modo uniforme.
Non pubblicare eventi in una partizione specifica. Se gli eventi di ordinamento sono essenziali, implementare l'ordinamento downstream o usare un servizio di messaggistica diverso.
Quando si pubblicano eventi di frequente, usare il protocollo AMQP quando possibile. AMQP ha costi di rete più elevati durante l'inizializzazione della sessione, ma HTTPS richiede un sovraccarico TLS per ogni richiesta. AMQP offre prestazioni più elevate per i server di pubblicazione frequenti.
Il numero di partizioni riflette il grado di parallelismo downstream che è possibile ottenere. Per la velocità effettiva massima, usare il numero massimo di partizioni supportate dallo SKU durante la creazione dell'hub eventi. L'aumento del numero di partizioni consente di ridimensionare le entità di elaborazione simultanee in modo che corrispondano alle partizioni, garantendo una disponibilità ottimale di invio e ricezione.
Quando si usa la funzionalità Di acquisizione, considerare attentamente la configurazione dell'intervallo di tempo e delle dimensioni del file, soprattutto con volumi di eventi bassi. Data Lake Gen2 addebiterà costi per le dimensioni minime delle transazioni. Se si imposta l'intervallo di tempo in modo che il file non abbia raggiunto le dimensioni minime, verrà addebitato un costo aggiuntivo.

Artefatti di origine

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

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

Passaggio successivo