[SP-pm] Arquitetura de um projeto que utilizará sistema de fila com

Renato Santos renato.cron at gmail.com
Wed Mar 14 04:27:06 PDT 2012


Também tem a arquitetura q o ebay apresentou:
http://highscalability.com/blog/2008/5/27/ebay-architecture.html
Em 14/03/2012 08:16, "Marcio Ferreira" <marciodesouzaferreira at gmail.com>
escreveu:

> Só dando um pitaco, ao contrário do mongoDB, experimente o ElasticSearch -
> performance incrível. E se atente na forma de como será feita a consulta na
> API das redes, as vezes consultar uma vez ao dia já resolva seu problema, e
> evite os horários de pico prq rodar seu scraper =S
> On Mar 14, 2012 8:03 AM, "Tiago Peczenyj" <tiago.peczenyj at gmail.com>
> wrote:
>
>> Oi
>>
>> é possivel criar uma fila usando um feed rss ou criando arquivos em um
>> diretorio. basta ver o que é mais interessante para o teu projeto. Por
>> exemplo, se vc publicar um feed e tiver do outro lado um consumidor
>> fazendo pooling vai ser tão bom quanto um ActiveMQ se vc não estiver
>> com um volume muito grande de dados E se puder esperar uns segundos.
>> Isso pode simplificar a tua infra num primeiro momento.
>>
>> On Tue, Mar 13, 2012 at 11:33 PM, Daniel de Oliveira Mantovani
>> <daniel.oliveira.mantovani at gmail.com> wrote:
>> > Shonorio, o Gearman não é um sistema de fila, ele funciona como um
>> > distribuid system.
>> >
>> > Você deva usar o AMPQ[1] ou o Apache ActiveMQ[2] para criar a fila e o
>> > Gearman para processar a informação. O Worker não sabe da existência
>> > do Client, quem faz esse intermédio é o Gearman Server[3].
>> >
>> > "A Gearman powered application consists of three parts: a client, a
>> > worker, and a job server. The client is responsible for creating a job
>> > to be run and sending it to a job server. The job server will find a
>> > suitable worker that can run the job and forwards the job on. The
>> > worker performs the work requested by the client and sends a response
>> > to the client through the job server. Gearman provides client and
>> > worker APIs that your applications call to talk with the Gearman job
>> > server (also known as gearmand) so you don't need to deal with
>> > networking or mapping of jobs. Internally, the gearman client and
>> > worker APIs communicate with the job server using TCP sockets. To
>> > explain how Gearman works in more detail, lets look at a simple
>> > application that will reverse the order of characters in a string. "
>> >
>> > [User Interface] <===>[RDBMS]<===> [Queue System]
>> >                                                                  /\
>> >                                                                  ||
>> >                                                                  ||
>> >                                                       [Distribuid
>> > System] <===> [Document-oriented database]
>> >
>> >
>> > Se baseando nesse arquitetura o Queue System vai mandando "jobs" de
>> > acordo com número de workers que você tem disponível, evitando um
>> > overhead e criando um sistema "auto scalability".
>> >
>> > Se eu fosse você eu me preocuparia com a forma de armazenamento dos
>> > dados, as redes sociais já garantem a integridade dos dados, sendo
>> > assim uma solução Document-oriented database te pouparia muito
>> > processamento e trabalho. Existem várias opções, eu recomendo o
>> > MongoDB[4] mesmo com o Eden Cardim me crucificando por isso.
>> >
>> > Guarde os dados dos usuários e do site num RDBMS, se você estiver
>> > pensando num RDBMS open source eu te recomendo o PostgreSQL, ele tem
>> > um ótimo suporte ao paradigma temporal.
>> > Se você usar o PostgreSQL, eu te recomendo usar o Pgpool[5] para
>> > replication, clustering, load balance etc.
>> >
>> > [1] - http://www.amqp.org/about/what
>> > [2] - http://activemq.apache.org/
>> > [3] - http://gearman.org/
>> > [4] - http://www.mongodb.org/display/DOCS/Sharding+Introduction
>> > [5] - http://www.pgpool.net/mediawiki/index.php/Main_Page
>> >
>> > Grande Abraço.
>> >
>> > 2012/3/13 Solli Honorio <shonorio at gmail.com>:
>> >> Pessoal,
>> >>
>> >> Estou iniciando um projeto de monitoramento de mídias sociais e fazer
>> algum
>> >> processamento com estas informações, e acredito que utilizar esquemas
>> de
>> >> fila serviria muito bem para este ambiente.
>> >>
>> >> Basicamente o esquema que estou imaginando para o ambiente é :
>> >>
>> >> [ Interface com o usuário ] <===> [Banco de Dados] <====> [Sistema de
>> Fila]
>> >>
>> >>                    ||             ||
>> >>
>> >>                    ||             +- [Executa a pesquisa]
>> >>
>> >>                    ||
>> >>
>> >>                    +-- [ Processa o resultado da pesquisa]
>> >>
>> >> As ações que eu imagino nisto são :
>> >>
>> >> * interface com o usuário não é meu problema, tem um webdeveloper
>> >> trabalhando nisto;
>> >> * não quero de maneira alguma fazer os 'agentes' interagir diretamente
>> com o
>> >> banco de dados, por isto penso em criar um cliente que leia o banco de
>> dados
>> >> e coloque os dados formatados para o agente na fila do agente. O
>> caminho
>> >> contrário também, ler o resultado do agente e gravar no banco de dados;
>> >>
>> >> Estou avaliando a possibilidade de utilizar o Gearman (na verdade não
>> tenho
>> >> certeza se esta é a melhor alternativa mesmo), na verdade o
>> >>  AnyEvent::Gearman. Mas algumas coisas me chamaram no Gearman do qual
>> eu
>> >> acho meio estranho para o ambiente sistema de fila que eu tenho na
>> minha
>> >> cabeça.
>> >>
>> >> 1. o worker (aparentemente o cara que executará o serviço) não fica em
>> loop
>> >> lendo uma fila, parece que ele está sendo acionado pelo cliente;
>> >> 2. o parece que o cliente fica 'preso' aguardando o final da execução
>> do
>> >> worker.
>> >>
>> >> Ainda não tenho código (que o meu cliente não leia isto, pois estou
>> muito
>> >> atrasado), mas eu gostaria de obter recomendações de vocês sobre a
>> >> arquitetura que estou imaginando.
>> >>
>> >> Obrigado,
>> >>
>> >> Solli Honorio
>> >>
>> >>
>> >> --
>> >> "o animal satisfeito dorme". - Guimarães Rosa
>> >>
>> >> =begin disclaimer
>> >>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> >>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>> >>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> >> =end disclaimer
>> >>
>> >
>> >
>> >
>> > --
>> > "If you’ve never written anything thoughtful, then you’ve never had
>> > any difficult, important, or interesting thoughts. That’s the secret:
>> > people who don’t write, are people who don’t think."
>> > =begin disclaimer
>> >   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> >  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> > =end disclaimer
>>
>>
>>
>> --
>> Tiago B. Peczenyj
>> Linux User #405772
>>
>> http://pacman.blog.br
>> =begin disclaimer
>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120314/e6d731de/attachment-0001.html>


More information about the SaoPaulo-pm mailing list