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 Lambda supporta 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.
Abilita l'elaborazione a bassa latenza
Per abilitare l'elaborazione a bassa latenza sulla mappatura della sorgente di un evento Kafka, è necessaria la seguente configurazione di base:
-
Abilita la modalità predisposta. Per ulteriori informazioni, consulta Modalità provisioning.
-
Imposta il
MaximumBatchingWindowInSecondsparametro della mappatura della sorgente dell'evento su 0. Per ulteriori informazioni, consulta Comportamento di batching.
Fine-tuning il tuo Kafka ESM a bassa latenza
Considerate i seguenti consigli per ottimizzare la mappatura della sorgente degli eventi Kafka per una bassa latenza:
Configurazione della modalità con provisioning
In modalità provisioned per la mappatura delle sorgenti di eventi di Kafka, è possibile ottimizzare il throughput della mappatura delle sorgenti di eventi configurando un numero minimo e massimo di risorse denominate event poller. Un event poller (o poller) rappresenta una risorsa di calcolo che è alla base di una mappatura della sorgente di eventi in modalità provisioned e alloca fino a 5 velocità effettiva. MB/s Ogni event poller supporta fino a 5 invocazioni Lambda simultanee.
Per determinare la configurazione del poller ottimale per la tua applicazione, considera la frequenza massima di ingestione e i requisiti di elaborazione. Diamo un'occhiata a un esempio semplificato:
Con una dimensione batch di 20 record e una durata media della funzione target di 50 ms, ogni poller può gestire 2.000 record al secondo con un limite di 5. MB/s Viene calcolato come: (20 record × 1000ms/50ms) × 5 chiamate Lambda simultanee. Pertanto, se la velocità massima di acquisizione desiderata è di 20.000 record al secondo, sono necessari almeno 10 poller di eventi.
Nota
Raccomandiamo di fornire poller di eventi aggiuntivi come buffer per evitare di operare costantemente alla massima capacità.
La modalità provisioned ridimensiona automaticamente i poller di eventi in base ai modelli di traffico entro i poller di eventi minimi e massimi configurati, il che può innescare un ribilanciamento e quindi introdurre una latenza aggiuntiva. È possibile disattivare il ridimensionamento automatico configurando lo stesso valore per il poller di eventi minimo e massimo.
Ulteriori considerazioni
Alcune delle considerazioni aggiuntive includono:
Le partenze a freddo partendo dall'invocazione della funzione target Lambda possono potenzialmente aumentare la latenza end-to-end. Per ridurre questo rischio, prendi in considerazione la possibilità di abilitare la coincidenza su provisioning o SnapStart sulla funzione target della mappatura della sorgente dell'evento. Inoltre, ottimizzate l'allocazione di memoria della funzione per garantire esecuzioni coerenti e ottimali.
-
Quando
MaximumBatchingWindowInSecondsè impostato su 0, Lambda elabora 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 elabora immediatamente quei 100 record anziché attendere l'accumulo dei 1.000 record completi.
Importante
La configurazione ottimale per l'elaborazione a bassa latenza varia notevolmente in base al carico di lavoro specifico. Consigliamo vivamente di testare diverse configurazioni con il carico di lavoro effettivo per determinare le impostazioni migliori per il tuo caso d'uso.