Griglia di eventi e affidabilità
Griglia di eventi di Azure consente di compilare facilmente applicazioni con architetture basate su eventi. Questa soluzione offre il supporto predefinito per gli eventi generati dai servizi di Azure, ad esempio BLOB di archiviazione e gruppi di risorse. Griglia di eventi include anche il supporto per i propri eventi, usando argomenti personalizzati.
Per altre informazioni sull'uso di Griglia di eventi, vedere Creare e instradare eventi personalizzati con Griglia di eventi di Azure.
Per informazioni su come creare carichi di lavoro più affidabili con Griglia di eventi, vedere Ripristino di emergenza geografico sul lato server in Griglia di eventi di Azure.
Le sezioni seguenti sono specifiche per Griglia di eventi di Azure e affidabilità:
- Considerazioni relative alla progettazione
- Elenco di controllo configurazione
- Opzioni di configurazione consigliate
- Artefatti di origine
Considerazioni relative alla progettazione
Griglia di eventi di Azure fornisce un Contratto di servizio per il tempo di attività. Per altre informazioni, vedere Contratto di servizio per Griglia di eventi.
Elenco di controllo
Il servizio Griglia di eventi di Azure è stato configurato tenendo presente l'affidabilità?
- Distribuire un'istanza di Griglia di eventi per area, nel caso di una soluzione di Azure in più aree.
- Monitorare Griglia di eventi per rilevare il recapito di eventi non riuscito.
- Usare eventi in batch.
- Le dimensioni dei batch di eventi non possono essere superiori a
1MB
. - Configurare e ottimizzare la selezione delle dimensioni dei batch durante i test di carico.
- Assicurarsi che i messaggi di Griglia di eventi vengano accettati con
HTTP
200-204
risposte solo se il recapito a un endpoint che contiene codice personalizzato. - Monitorare Griglia di eventi per rilevare la pubblicazione di eventi non riuscita.
Raccomandazioni per la configurazione
Esaminare le raccomandazioni seguenti per ottimizzare l'affidabilità durante la configurazione di Griglia di eventi di Azure:
Suggerimento | Descrizione |
---|---|
Monitorare Griglia di eventi per rilevare il recapito di eventi non riuscito. | La metrica Delivery Failed aumenterà ogni volta che un messaggio non può essere recapitato a un gestore eventi (timeout o codice di stato diverso da 200-204 HTTP ). Se un evento non può andare perso, configurare un account di archiviazione per la coda di messaggi non recapitabili. In un account di questo tipo verranno inseriti gli eventi che non possono essere recapitati dopo il numero massimo di tentativi. Facoltativamente, implementare un sistema di notifica nell'account di archiviazione per la coda di messaggi non recapitabili, ad esempio gestendo un evento di tipo nuovo file tramite Griglia di eventi. |
Usare eventi in batch negli scenari con velocità effettiva elevata. | Il servizio distribuirà ai sottoscrittori una matrice json con più eventi invece che con uno solo. L'applicazione consumer deve essere in grado di elaborare queste matrici. |
Le dimensioni dei batch di eventi non possono essere superiori a 1MB . |
Se il payload dei messaggi è di grandi dimensioni, nel batch verranno inseriti solo uno o pochi messaggi. Il servizio consumer dovrà elaborare più batch di eventi. Se l'evento ha un payload di grandi dimensioni, è consigliabile archiviarlo altrove, ad esempio in archiviazione BLOB, e passare un riferimento nell'evento. Se si esegue l'integrazione con servizi di terze parti tramite lo schema CloudEvents, non è consigliabile superare 64KB di eventi. |
Configurare e ottimizzare la selezione delle dimensioni dei batch durante i test di carico. | La selezione delle dimensioni dei batch dipende dalle dimensioni del payload e dal volume di messaggi. |
Monitorare Griglia di eventi per rilevare la pubblicazione di eventi non riuscita. | La metrica Unmatched visualizza i messaggi pubblicati, ma non corrispondenti ad alcuna sottoscrizione. A seconda dell'architettura dell'applicazione, quest'ultimo aspetto potrebbe essere intenzionale. |
Artefatti di origine
Per determinare il tipo di schema di input per tutti gli argomenti di Griglia di eventi disponibili, usare la query seguente:
Resources
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']
Per recuperare l'ID risorsa degli endpoint privati esistenti per i domini di Griglia di eventi, usare la query seguente:
Resources
| where type == 'microsoft.eventgrid/domains' and notnull(properties['privateEndpointConnections'])
| mvexpand properties['privateEndpointConnections']
| project-rename privateEndpointConnections = properties_privateEndpointConnections
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']
Per identificare lo stato di accesso alla rete pubblica per tutti i domini di Griglia di eventi disponibili, usare la query seguente:
Resources
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']
Per identificare le regole del firewall per tutti i domini di Griglia di eventi pubblici, usare la query seguente:
Resources
| where type == 'microsoft.eventgrid/domains' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']
Per identificare le regole del firewall per tutti gli argomenti di Griglia di eventi pubblici, usare la query seguente:
Resources
| where type == 'microsoft.eventgrid/topics' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']
Per recuperare l'ID risorsa degli endpoint privati esistenti per gli argomenti di Griglia di eventi, usare la query seguente:
Resources
| where type == 'microsoft.eventgrid/topics' and notnull(properties['privateEndpointConnections'])
| mvexpand properties['privateEndpointConnections']
| project-rename privateEndpointConnections = properties_privateEndpointConnections
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']
Per determinare il tipo di schema di input per tutti i domini di Griglia di eventi disponibili, usare lo schema seguente:
Resources
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']
Per identificare lo stato di accesso alla rete pubblica per tutti gli argomenti di Griglia di eventi disponibili, usare la query seguente:
Resources
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']