BT

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

| por Sergio De Simone Seguir 18 Seguidores , traduzido por Rafael Sakurai Seguir 36 Seguidores em 09 abr 2015. Tempo estimado de leitura: 2 minutos |

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.

Dê sua opinião

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

Receber mensagens dessa discussão

Corretor troll by Eduardo Marreto Mendes

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

Re: Corretor troll by Eder Ignatowicz

Corrigido! Obrigado pelo feedback.

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

Receber mensagens dessa discussão

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

Receber mensagens dessa discussão

2 Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT