Processamento de baixa latência para fontes de eventos do Kafka - AWS Lambda

Processamento de baixa latência para fontes de eventos do Kafka

O AWS Lambda oferece suporte nativo ao processamento de eventos de baixa latência para aplicações que exigem latências consistentes de ponta a ponta de menos de 100 milissegundos. Esta página fornece detalhes de configuração e recomendações para permitir fluxos de trabalho de baixa latência.

Habilite o processamento de baixa latência

Para habilitar o processamento de baixa latência em um mapeamento da origem do eventos do Kafka, é necessária a seguinte configuração básica:

Ajuste o ESM do Kafka de baixa latência

Considere as recomendações a seguir para otimizar seu mapeamento da origem do evento do Kafka para baixa latência:

Configuração do modo provisionado

No modo provisionado do mapeamento da origem do evento do Kafka, o Lambda permite ajustar o throughput do mapeamento da origem do evento configurando um número mínimo e máximo de recursos chamados sondagens de eventos. Uma sondagem de eventos (ou uma sondagem) representa um recurso computacional que sustenta um mapeamento da origem do evento no modo provisionado e aloca um throughput de até 5 MB/s. Cada sondagem de eventos suporta até 5 invocações simultâneas do Lambda.

Para determinar a configuração ideal da sondagem para sua aplicação, considere sua taxa de ingestão máxima e os requisitos de processamento. Vamos dar uma olhada em um exemplo simplificado:

Com um tamanho de lote de 20 registros e uma duração média da função de destino de 50 ms, cada sondagem pode lidar com 2.000 registros por segundo, sujeitos ao limite de 5 MB/s. Isso é calculado como: (20 registros × 1000ms/50ms) × 5 invocações simultâneas do Lambda. Portanto, se a taxa de ingestão máxima desejada for de 20.000 registros por segundo, você precisará de pelo menos 10 sondagens de eventos.

nota

Recomendamos provisionar as sondagens de eventos adicionais como buffer para evitar que a operação consistente atinja a capacidade máxima.

O modo provisionado dimensiona automaticamente suas sondagens de eventos com base nos padrões de tráfego dentro das sondagens de eventos mínimas e máximas configuradas, o que pode acionar o rebalanceamento e, portanto, introduzir latência adicional. Você pode desabilitar o ajuste de escala automático ao configurar o mesmo valor para o mínimo e máximo de sondagem de eventos.

Considerações adicionais

Algumas das considerações adicionais incluem:

  • As partidas a frio da invocação da função de destino do Lambda podem potencialmente aumentar a latência de ponta a ponta. Para reduzir esse risco, considere habilitar a simultaneidade provisionada ou o SnapStart na função de destino do mapeamento da origem do evento. Além disso, otimize a alocação de memória de sua função para garantir execuções consistentes e ideais.

  • Quando MaximumBatchingWindowInSeconds for definido como 0, o Lambda processará imediatamente todos os registros disponíveis sem esperar para preencher o tamanho completo do lote. Por exemplo, se o tamanho do lote estiver definido para 1.000 registros, mas apenas 100 registros estiverem disponíveis, o Lambda processará esses 100 registros imediatamente, em vez de esperar que os 1.000 registros completos se acumulem.

Importante

A configuração ideal para processamento de baixa latência varia significativamente com base na workload específica. Enfatizamos a recomendação de testar diferentes configurações com sua workload real para determinar as melhores configurações para seu caso de uso.