Tornado é “uma estrutura de servidor relativamente simples, sem bloqueio web escrito em Python” - tanto pode explicar o que isso significa?

StackOverflow https://stackoverflow.com/questions/1419624

  •  07-07-2019
  •  | 
  •  

Pergunta

Esta é provavelmente uma pergunta estúpida, mas o que exatamente é um "servidor non-blocking web"? Todos os servidores web são tecnicamente non-blocking, Arent eles? caso contrário, como poderiam lidar com conexões simultâneas? Apache2 alcança este usando uma combinação de garfo () e pthreads. Como exatamente são Tornado (e trançado também) diferente? Será que eles apenas definir um monte de soquetes para o modo não-bocking, construir uma lista de FD (ou equivalente), e em seguida, loop sobre isso com um seleto chamada grande () sys?

Onde você usaria um quadro como estes, e quais as vantagens que eles podem dar-lhe mais Apache2 (ou outros servidores populares)? Graças

Foi útil?

Solução

Esta href="http://www.igvita.com/2008/05/27/ruby-eventmachine-the-speed-demon/" rel="nofollow artigo em EventMachine pode também dar-lhe uma dica:

Mergulhada na tradição de bifurcação / web-servers rosca eu me encontrei em vez surpreendeu quando entrei para uma das os projetos de pesquisa da Universidade de Waterloo um par de anos atrás: nós foram aferição diferentes web-servidor arquitecturas, e melhor desempenho eram todos os servidores orientada a eventos.

Como eu importunado todos com perguntas, Eu rapidamente percebi por que - numa ambiente com centenas de milhares solicita uma segunda, e contexto de bifurcação comutação associada com rosca gestão tornam-se proibitivamente caro (garfo é pior desempenho, como ele faz uma cópia de memória sobre o pai processar cada vez). Considerando que, pela comparação, um apertado e altamente otimizado evento de circuito realmente brilha quando se trata de desempenho sob cargas pesadas.

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