Prospettiva di Azure Well-Architected Framework su Hub eventi di Azure
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 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:
- Monitorare Hub eventi di Azure
- Trasmettere dati di Diagnostica di Azure usando Hub eventi
- Ridimensionamento con Hub eventi
Le sezioni seguenti sono specifiche per Hub eventi di Azure dal punto di vista di Well Architected Framework:
- Considerazioni relative alla progettazione
- Elenco di controllo configurazione
- Opzioni di configurazione consigliate
- 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
Il servizio Hub eventi di Azure è stato configurato tenendo presente l'eccellenza operativa?
- 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
oOperationCancelledException
) vengano rilevate correttamente. - Negli scenari con velocità effettiva elevata, usare eventi in batch.
- Ogni consumer può leggere gli eventi da una a un massimo di partizioni supportate dallo SKU di Hub eventi
- Se si sviluppano nuove applicazioni, usare
EventProcessorClient
(.NET e Java) oEventHubConsumerClient
(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:
Suggerimento | 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 a un massimo di partizioni supportate dallo SKU di Hub eventi. | 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. Le prestazioni di AMQP sono più elevate per i publisher 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. |
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. | Data Lake Gen2 addebiterà costi per le dimensioni minime delle transazioni. 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