BT

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?

Favoritos

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

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Comentários da comunidade

  • Corretor troll

    by Eduardo Marreto Mendes /

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Artigo muito interessante, apenas como ajuda, parece que seu corretor trocou Kafka por Kafta...

  • Re: Corretor troll

    by Eder Ignatowicz /

    Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!

    Corrigido! Obrigado pelo feedback.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Seu cadastro no InfoQ está atualizado? Poderia rever suas informações?

Nota: se você alterar seu email, receberá uma mensagem de confirmação

Nome da empresa:
Cargo/papel na empresa:
Tamanho da empresa:
País:
Estado:
Você vai receber um email para validação do novo endereço. Esta janela pop-up fechará em instantes.