[Cascavel-pm] webcrawler usando Socket

Nilson Santos Figueiredo Junior acid06 em gmail.com
Terça Outubro 18 16:46:56 PDT 2005


On 10/18/05, Alceu R. de Freitas Jr. <glasswalk3r em yahoo.com.br> wrote:
> Isso provavelmente tornaria bem lento... não dá para
> enfileirar as requisições, isso demoraria muito.

Não é enfileirar requisições.
Todas elas aconteceriam em paralelo só que em um mesmo processo. Você
faz isso usando um loop de select nos sockets. Se você fizer tudo
direitinho dá pra ter um desempenho quase igual ao de threads
separados, com a diferença do consumo de memória não ser mais um
problema. Ou então você poderia utilizar o POE, com o component de
cliente HTTP pra ele. Se você não conhece sobre o POE, vale a pena dar
uma lida.

> Disputar memória com o Squid também não é uma boa
> idéia. Eu teria que ter esse servidor Perl em outra
> máquina e os redirecionadores alcançarem ela via
> sockets. E se eu for usar sockets, então voltamos no
> mesmo problema.

Aí que tá: se você adotasse a solução de um servidor só a questão de
memória seria reduzida a fatores bem mais aceitáveis (os 16MB
iniciais, porém cada cliente aumentaria o consumo em alguns meros
KBs).

Bom, eu acho essa solução bem viável. O único porém é que você teria
que gastar um tempinho analisando detalhes de implementação pra
garantir que tudo fosse feito da melhor forma possível. Implementar o
servidor usando POE é particularmente interessante. ;-)

-Nilson Santos F. Jr.


Mais detalhes sobre a lista de discussão Cascavel-pm