Planejando para eventos de alto volume
Grandes eventos nacionais e globais são frequentemente acompanhados de picos dramáticos na atividade dos usuários nas redes sociais. Às vezes esses eventos são conhecidos com antecedência:- Super Bowl
- Eleições políticas
- Comemorações de Ano-Novo pelo mundo
- Desastres naturais
- Eventos políticos não planejados
- Momentos da cultura pop
- Emergências de saúde
Revise suas regras de stream
Antes de eventos de alto volume:- Certas palavras-chave podem explodir durante eventos (ex.: menções de marca quando uma marca patrocina um grande evento esportivo)
- Remova regras desnecessárias ou muito genéricas que possam gerar volumes de atividade excessivos
- Comunique-se com stakeholders antes de eventos de alto volume conhecidos para ajudá-los a planejar adequadamente
Teste sua aplicação sob estresse
Antecipe que volumes de burst podem chegar a 5-10x os níveis médios de consumo diário. Dependendo de suas regras, o aumento pode ser muito maior. Teste sua aplicação com volumes altos simulados para identificar gargalos antes que eventos reais ocorram.Entenda os limites de entrega
Limites de fluxo e entrega são baseados no seu nível de acesso:Mantenha-se conectado
Com streams, manter-se conectado é essencial para não perder dados. Sua aplicação cliente deve:- Detectar desconexões imediatamente
- Tentar reconectar usando estratégias de backoff apropriadas
- Usar backoff exponencial se as tentativas de reconexão falharem
Construa buffering do lado do cliente
Construir uma aplicação multi-thread é a chave para lidar com streams de alto volume:Arquitetura recomendada
-
Stream thread (leve)
- Estabelece a conexão de streaming
- Grava o JSON recebido em uma estrutura de memória ou stream reader com buffer
- Manipula apenas os dados de entrada — sem processamento
-
Memory buffer
- Cresce e diminui conforme necessário
- Atua como um amortecedor para picos de volume
-
Processing thread(s) (trabalho pesado)
- Consome do buffer
- Analisa JSON
- Prepara gravações no banco de dados
- Lida com a lógica da aplicação
Considere fusos horários
Eventos globais acontecem em fusos horários globais. Os eventos podem ocorrer:- Fora do horário comercial
- Nos fins de semana
- Durante feriados
- Sistemas de alertas automatizados
- Escalas de plantão
- Respostas de escalonamento automatizadas
Recomendações de monitoramento
- Rastreie o volume de Posts em tempo real
- Configure alertas para limites de volume (aumentos e diminuições)
- Monitore o tamanho do buffer para detectar quando seu processamento está atrasado
- Compare timestamps de Posts com o horário atual para identificar atraso
Medidas de emergência
Implemente proteções para circunstâncias extremas:- Alertas automatizados quando o volume passar limites predefinidos
- Exclusão automática de regras para regras que trazem dados em excesso
- Desconexão do stream em circunstâncias extremas para proteger seus sistemas
- Operadores de amostragem — adicione
sample:às regras para reduzir o volume correspondente
Próximos passos
Consumindo dados de streaming
Construa clientes de streaming robustos
Lidando com desconexões
Reconecte-se de forma elegante
Recuperação e redundância
Construa aplicações resilientes