BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Como o Twitter Answers trata cinco bilhões de sessões por dia?

Como o Twitter Answers trata cinco bilhões de sessões por dia?

Como o Twitter Answers trata cinco bilhões de sessões por dia?

O Twitter Answers é um serviço de análise para aplicativos móveis que recebe cinco bilhões de sessões por dia. Ed Solovey, engenheiro de software do Twitter, descreveu como o sistema funciona fornecendo "segurança, tempo real e acionabilidade" com base em dados de milhões de dispositivos móveis enviando milhões de eventos todos segundos.

Como Solovey explicou, os principais deveres do Answers são:

  • receber eventos;
  • arquivar eventos;
  • processar informações offline e em tempo real;
  • mesclar os resultados das computações em informações coerentes.

O serviço encarregado de receber os eventos dos dispositivos foi escrito em Go e usa o Amazon Elastic Load Balancer. Cada evento é colocado em uma fila Kafka durável. Dado o grande número de eventos para armazenar, o Kafka é somente usado como cache temporário contendo algumas horas de dados, enquanto que o Storm é usado para transferir os dados para o Amazon S3.

Uma vez que os dados estão no S3, o Amazon Elastic MapReduce é usado para processá-los em lote e o resultado é armazenado em clusters do Cassandra e disponibilizados para consultas através de uma API.

Isso é apenas metade da história. O Answer de fato também processa dados em tempo real. Com esse objetivo, o conteúdo armazenado no Kafka é enviado para o Storm e processado através de algoritmos probabilísticos como o Bloom Filters e HyperLogLog para proporcionar resultados em tempo hábil com o custo de uma "perda insignificante de precisão". Os resultados são armazenados novamente no Cassandra.

No final do processo, o Cassandra contém os resultados computados em lote, bem como resultados em tempo real. A API de consulta encarrega-se de combinar esses dois streams para fornecer uma visão coerente com base nos parâmetros da consulta. Os resultados dos lotes computados tem preferência quando estão disponíveis, já que eles possuem mais precisão, caso contrário os resultados em tempo real serão fornecidos.

A arquitetura descrita aqui também é eficiente quando é necessário tratar falhas, disse Solovey, graças ao uso de filas duráveis que conectam os componentes do Answers. Isso garante que qualquer interrupção de um componente não afetará os outros. Além do mais, também permite recuperação e a garantia de não perder os dados se o sistema voltar a operar novamente dentro de um determinado prazo.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT