Pergunta

O Superfeedr é um serviço de abordagem sob demanda. Queremos fornecer análises para nossos usuários e estamos investigando qual seria a melhor estratégia para isso.

Em poucas palavras, queremos rastrear o número de operações (eventos, como: nova entrada em um determinado feed) em nosso sistema, bem como dados aceitos (número de assinantes para feed).

Obviamente, os dados agregados podem ser "calculados" com base nos eventos. (O número de susbitantes de um feed é a soma das assinaturas, menos a soma das descrições). No entanto, como queremos estudar que, com o tempo (número de susbitantes diariamente), a abordagem eventuada pode ser subótima, uma vez que recorrermos a mesma coisa repetidamente.

Como alguém construiria esse componente em seu aplicativo? Qual fluxo de informação? Quais lojas de dados? Que solução gráfica? etc ...

Sei que essa é uma pergunta bastante aberta, mas tenho certeza de que não somos os primeiros com tanta necessidade!

Atualização]: Infraestrutura: temos um conjunto de trabalhadores, que são clientes XMPP e interagem todos juntos. Eles são baseados em EventMachine, o que significa que eles não bloqueiam em IO. Alvo desejado: devemos ser capazes de coletar grandes quantidades de dados. Atualmente, já estamos em cerca de 200-300 msg/s e buscamos 10x-100x isso.

Foi útil?

Solução

É difícil dizer sem mais informações sobre sua infraestrutura e metas de escala desejadas. Você pode encontrar este slide deck sobre Como o Twitter usa o Hadoop para ser instrucional. Foi apresentado por Kevin Weil no recente Conferência NOSQL East.

alt text

Emprestando idéias do que o Twitter está fazendo, você pode considerar uma arquitetura dividida em coleta, análise e fases.

Fase de coleta: Latência super baixa. Muito escalável. Muitas opções de ligação. Desenvolvido em o Facebook.

Evento de log do nó de processamento -> Escriba -> hdfs

Fase de análise: Linguagem de consulta do tipo SQL que permitirá que você faça consultas ad-hoc exploratórias também.

HDFS -> Porco -> mysql

Fase de renderização: Implementado em sua estrutura web atual

MySQL -> JSON -> Memcached -> Flash Charting

Houve algumas postagens aqui sobre a escolha dos componentes do gráfico de flash para a Web. Pessoalmente, tive um bom sucesso com AmCharts.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top