mantovani++  # mandando bem hehehe<br clear="all"><b><br>Daniel Vinciguerra</b><br>
Web Solutions Architect and Co-Owner at Bivee<br><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><a href="http://github.com/dvinciguerra" style="color:rgb(28,81,168)" target="_blank">http://github.com/dvinciguerra</a></span><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><a href="http://github.com/dvinciguerra" style="color:rgb(28,81,168)" target="_blank"></a></span><br>


<br><br><div class="gmail_quote">On 14 March 2012 06:06, Solli Honorio <span dir="ltr"><<a href="mailto:shonorio@gmail.com">shonorio@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Mantovani,<div><br></div><div>Muito obrigado pela resposta, e antes de qualquer coisa me senti muito orgulho de ver a qualidade da tua resposta. Você razão, eu comi uma enorme bola e estava esquecendo do sistema de fila de verdade. Não sei dizer o motivo, mas em algum momento fiz confusão e apaguei o RabbitMQ que estou planejando, e aí não iria funcionar mesmo.</div>



<div><br></div><div>Sobre o banco de dados, isto não é um problema meu. Tem outra pessoa sendo muito bem paga para isto e é ele quem vai ter que sofrer com este assunto :D.</div><div><br></div><div>Enorme abraço,</div><div>



<br></div><div>Solli Honorio<br><br><div class="gmail_quote">Em 13 de março de 2012 23:33, Daniel de Oliveira Mantovani <span dir="ltr"><<a href="mailto:daniel.oliveira.mantovani@gmail.com" target="_blank">daniel.oliveira.mantovani@gmail.com</a>></span> escreveu:<div>

<div class="h5"><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Shonorio, o Gearman não é um sistema de fila, ele funciona como um<br>
distribuid system.<br>
<br>
Você deva usar o AMPQ[1] ou o Apache ActiveMQ[2] para criar a fila e o<br>
Gearman para processar a informação. O Worker não sabe da existência<br>
do Client, quem faz esse intermédio é o Gearman Server[3].<br>
<br>
"A Gearman powered application consists of three parts: a client, a<br>
worker, and a job server. The client is responsible for creating a job<br>
to be run and sending it to a job server. The job server will find a<br>
suitable worker that can run the job and forwards the job on. The<br>
worker performs the work requested by the client and sends a response<br>
to the client through the job server. Gearman provides client and<br>
worker APIs that your applications call to talk with the Gearman job<br>
server (also known as gearmand) so you don't need to deal with<br>
networking or mapping of jobs. Internally, the gearman client and<br>
worker APIs communicate with the job server using TCP sockets. To<br>
explain how Gearman works in more detail, lets look at a simple<br>
application that will reverse the order of characters in a string. "<br>
<br>
[User Interface] <===>[RDBMS]<===> [Queue System]<br>
                                                                  /\<br>
                                                                  ||<br>
                                                                  ||<br>
                                                       [Distribuid<br>
System] <===> [Document-oriented database]<br>
<br>
<br>
Se baseando nesse arquitetura o Queue System vai mandando "jobs" de<br>
acordo com número de workers que você tem disponível, evitando um<br>
overhead e criando um sistema "auto scalability".<br>
<br>
Se eu fosse você eu me preocuparia com a forma de armazenamento dos<br>
dados, as redes sociais já garantem a integridade dos dados, sendo<br>
assim uma solução Document-oriented database te pouparia muito<br>
processamento e trabalho. Existem várias opções, eu recomendo o<br>
MongoDB[4] mesmo com o Eden Cardim me crucificando por isso.<br>
<br>
Guarde os dados dos usuários e do site num RDBMS, se você estiver<br>
pensando num RDBMS open source eu te recomendo o PostgreSQL, ele tem<br>
um ótimo suporte ao paradigma temporal.<br>
Se você usar o PostgreSQL, eu te recomendo usar o Pgpool[5] para<br>
replication, clustering, load balance etc.<br>
<br>
[1] - <a href="http://www.amqp.org/about/what" target="_blank">http://www.amqp.org/about/what</a><br>
[2] - <a href="http://activemq.apache.org/" target="_blank">http://activemq.apache.org/</a><br>
[3] - <a href="http://gearman.org/" target="_blank">http://gearman.org/</a><br>
[4] - <a href="http://www.mongodb.org/display/DOCS/Sharding+Introduction" target="_blank">http://www.mongodb.org/display/DOCS/Sharding+Introduction</a><br>
[5] - <a href="http://www.pgpool.net/mediawiki/index.php/Main_Page" target="_blank">http://www.pgpool.net/mediawiki/index.php/Main_Page</a><br>
<br>
Grande Abraço.<br>
<br>
2012/3/13 Solli Honorio <<a href="mailto:shonorio@gmail.com" target="_blank">shonorio@gmail.com</a>>:<br>
<div><div>> Pessoal,<br>
><br>
> Estou iniciando um projeto de monitoramento de mídias sociais e fazer algum<br>
> processamento com estas informações, e acredito que utilizar esquemas de<br>
> fila serviria muito bem para este ambiente.<br>
><br>
> Basicamente o esquema que estou imaginando para o ambiente é :<br>
><br>
> [ Interface com o usuário ] <===> [Banco de Dados] <====> [Sistema de Fila]<br>
><br>
>                    ||             ||<br>
><br>
>                    ||             +- [Executa a pesquisa]<br>
><br>
>                    ||<br>
><br>
>                    +-- [ Processa o resultado da pesquisa]<br>
><br>
> As ações que eu imagino nisto são :<br>
><br>
> * interface com o usuário não é meu problema, tem um webdeveloper<br>
> trabalhando nisto;<br>
> * não quero de maneira alguma fazer os 'agentes' interagir diretamente com o<br>
> banco de dados, por isto penso em criar um cliente que leia o banco de dados<br>
> e coloque os dados formatados para o agente na fila do agente. O caminho<br>
> contrário também, ler o resultado do agente e gravar no banco de dados;<br>
><br>
> Estou avaliando a possibilidade de utilizar o Gearman (na verdade não tenho<br>
> certeza se esta é a melhor alternativa mesmo), na verdade o<br>
>  AnyEvent::Gearman. Mas algumas coisas me chamaram no Gearman do qual eu<br>
> acho meio estranho para o ambiente sistema de fila que eu tenho na minha<br>
> cabeça.<br>
><br>
> 1. o worker (aparentemente o cara que executará o serviço) não fica em loop<br>
> lendo uma fila, parece que ele está sendo acionado pelo cliente;<br>
> 2. o parece que o cliente fica 'preso' aguardando o final da execução do<br>
> worker.<br>
><br>
> Ainda não tenho código (que o meu cliente não leia isto, pois estou muito<br>
> atrasado), mas eu gostaria de obter recomendações de vocês sobre a<br>
> arquitetura que estou imaginando.<br>
><br>
> Obrigado,<br>
><br>
> Solli Honorio<br>
><br>
><br>
> --<br>
> "o animal satisfeito dorme". - Guimarães Rosa<br>
><br>
</div></div>> =begin disclaimer<br>
>   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>  SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
>  L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
> =end disclaimer<br>
><br>
<span><font color="#888888"><br>
<br>
<br>
--<br>
"If you’ve never written anything thoughtful, then you’ve never had<br>
any difficult, important, or interesting thoughts. That’s the secret:<br>
people who don’t write, are people who don’t think."<br>
=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</font></span></blockquote></div></div></div><div><div class="h5"><br><br clear="all"><div><br></div>-- <br>"o animal satisfeito dorme". - Guimarães Rosa<br>
</div></div></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br>