Elaborazione a bassa latenza per sorgenti di eventi Kafka - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Elaborazione a bassa latenza per sorgenti di eventi Kafka

AWS Lambdasupporta nativamente l'elaborazione di eventi a bassa latenza per applicazioni che richiedono latenze end-to-end costanti inferiori a 100 millisecondi. Questa pagina fornisce dettagli di configurazione e consigli per abilitare flussi di lavoro a bassa latenza.

Elaborazione a bassa latenza

Per abilitare l'elaborazione a bassa latenza su una mappatura delle sorgenti di eventi Kafka, è richiesta la seguente configurazione di base:

  • Abilita la modalità provisioning; Per ulteriori informazioni, consulta Modalità provisioning.

  • Imposta il MaximumBatchingWindowInSeconds parametro della mappatura della sorgente degli eventi su 0. Per ulteriori informazioni, consulta Comportamento di batching.

Ottimizzazione del tuo Kafka ESM a bassa latenza

Considerate i seguenti consigli per ottimizzare la mappatura delle sorgenti di eventi Kafka per una bassa latenza:

Configurazione della modalità provisioning

In modalità provisioning per la mappatura dell'origine degli eventi Kafka, Lambda consente di ottimizzare il throughput dello strumento di mappatura dell'origine degli eventi configurando un numero minimo e massimo di risorse chiamate poller di eventi. Un event poller (o poller) rappresenta una risorsa di calcolo che è alla base di una mappatura delle sorgenti di eventi nella modalità fornita e alloca un throughput fino a 5 MB/s. Ogni event poller supporta fino a 5 chiamate Lambda simultanee.

Per determinare la configurazione ottimale del poller per la vostra applicazione, tenete conto della velocità di ingestione massima e dei requisiti di elaborazione. Diamo un'occhiata a un esempio semplificato:

Con un batch di 20 record e una durata media della funzione target di 50 ms, ogni poller può gestire 2.000 record al secondo entro il limite di 5 MB/s. Viene calcolato come: (20 record × 1000 ms/50 ms) × 5 chiamate Lambda simultanee. Pertanto, se la velocità di ingestione massima desiderata è di 20.000 record al secondo, sono necessari almeno 10 event poller.

Nota

Si consiglia di fornire sondaggi di eventi aggiuntivi come buffer per evitare di operare costantemente alla massima capacità.

La modalità Provisioned ridimensiona automaticamente i poller degli eventi in base ai modelli di traffico all'interno di poller di eventi minimi e massimi configurati, che possono attivare il ribilanciamento e quindi introdurre una latenza aggiuntiva. È possibile disabilitare l'auto-scaling configurando lo stesso valore per il poller di eventi minimo e massimo.

Ulteriori considerazioni

Ecco alcune considerazioni aggiuntive:

  • L'avvio a freddo dall'invocazione della funzione di destinazione Lambda può potenzialmente aumentare la latenza end-to-end; Per ridurre questo rischio, prendete in considerazione l'attivazione di provisioned concurrency o SnapStart sulla funzione di destinazione della mappatura delle sorgenti degli eventi. Inoltre, ottimizza l'allocazione della memoria della funzione per garantire esecuzioni coerenti e ottimali.

  • Quando MaximumBatchingWindowInSeconds è impostato su 0, Lambda elaborerà immediatamente tutti i record disponibili senza attendere di riempire la dimensione completa del batch. Ad esempio, se la dimensione del batch è impostata su 1.000 record ma sono disponibili solo 100 record, Lambda elaborerà tali 100 record immediatamente anziché attendere che si accumulino tutti i 1.000 record.

Importante

La configurazione ottimale per l'elaborazione a bassa latenza varia in modo significativo in base al carico di lavoro specifico. Ti consigliamo vivamente di testare diverse configurazioni con il tuo carico di lavoro effettivo per determinare le impostazioni migliori per il tuo caso d'uso.