12.1. Streams, mensageria e logs
Broker tradicional apaga ao entregar; broker baseado em log guarda em ordem e permite reler.
Resumo
- Stream: dados que chegam sem fim, processados aos poucos. Evento: registro imutável de algo que aconteceu, com timestamp.
- Se o consumidor é lento: descartar, bufferizar ou backpressure (frear o produtor).
- Broker AMQP/JMS (RabbitMQ): apaga após ack; balanceamento entre consumidores, ordem não garantida.
- Log (Kafka, Kinesis): partições append-only; consumidor guarda offset; ordem por partição; pode reler.
- Log é como disco: retém dias ou semanas; consumidor novo reprocessa do início. Bom para fan-out e auditoria.
Perguntas-chave
responda de cabeça, depois abraQuando preferir broker baseado em log?
Quando a ordem importa, há vários consumidores independentes ou é preciso reprocessar eventos antigos.
Quando um broker tradicional é melhor?
Quando as mensagens são tarefas caras e independentes, a ordem não importa e se quer distribuir trabalho mensagem a mensagem.
O que é backpressure?
Mecanismo em que o consumidor lento faz o produtor desacelerar, em vez de perder mensagens ou estourar a memória.
Exercícios de fixação
0/5 respondidas1.
Um novo serviço de análise precisa processar todos os eventos de compra dos últimos 7 dias. Qual tipo de broker permite isso?
2.
Em Kafka, a ordem das mensagens é garantida:
3.
Tarefas de conversão de vídeo, demoradas e independentes, devem ser distribuídas entre 10 workers. O que encaixa melhor?
4.
Num log, o que o consumidor precisa guardar para continuar de onde parou?
5.
O produtor envia mais rápido do que o consumidor processa e o broker não pode perder nada. A estratégia é: