Lendo um livro sobre Aplicativos Web de Página Única, cheguei a um parágrafo que me fez pensar:
O Node.js é não-bloqueador e controlado por eventos. Em poucas palavras, isso significa que uma única instância do Node.js. em hardware modesto pode lidar com dezenas ou centenas de milhares de conexões abertas simultâneas , como as usadas nas mensagens em tempo real, que geralmente é um recurso altamente desejado dos SPAs modernos.
Percebi o caso de usar o Raspberry Pi como servidor Rails , e o Node.js.?
Como configuro meu Raspberry Pi para atender a um aplicativo Node.js.
Alguém tentou, existem dicas e truques, talvez truques ou limitações a considerar?
Edit: Para evitar mal-entendidos ou off-topic, vamos manter o foco no Raspberry Pi, no contexto do Node.js.
- Qual é a adequação do Raspberry Pi para atender aos aplicativos Node?
- Se for esse o caso, como ajustar o Raspberry Pi para obter melhores resultados?
fonte
Respostas:
Obtendo o Node.js em um Raspberry Pi
Você também pode:
atuação
Fiz um teste rápido de desempenho (para dar uma primeira impressão aproximada):
Meu Raspberry Pi está com overclock (Turbo) com memory_split padrão (64)
Os testes foram realizados na minha rede local (802.11g Wifi).
Usei o exemplo padrão "Hello World" no site do Node.js.
Configurações do banco Apache:
ab -r -n 10000 -c 100 http://192.168.0.116:1337/
Portanto, esses testes não são representativos para um aplicativo Web normal (tanto em relação à conexão de rede quanto à duração / complexidade do conteúdo transferido).
Resultados
Para uma comparação, eu também instalei o nginx no meu Raspberry Pi e executei o mesmo teste com o padrão "Bem-vindo ao nginx!" Arquivo HTML:
Otimizando as configurações do Raspberry Pi
Use
raspi-config
para alterar as seguintes configurações:fonte
Servidores da Web
Node.JS
pode ser usado como um servidor de substituição no Pi e você pode criar aplicativos da Web independentes ou de página única com facilidade.Mas apenas para sua informação, na maioria dos aplicativos do mundo real, é recomendável usar servidores como o moderno
nginx
, levelighttpd
ou o robusto, mas com todos os recursosapache2
! E, em seguida, faça o script node.js para complementar o site.Obviamente, as possibilidades são infinitas e tudo depende do que você deseja alcançar.
Raspberry Pi?
O Raspberry Pi pode executar qualquer um desses servidores da web. Ele também pode executar o Node sem complicações sérias e é muito rápido sem nenhum ajuste complicado.
O Raspberry Pi é muito capaz, mas o melhor seria transformar a divisão da memória em menos gráficos e mais RAM. Esqueça o uso de um IDE e faça tudo via SSH. Se você realmente precisar de mais suco, coloque um dissipador de calor no chip BCM e faça o overclock quando se sentir seguro. Outra opção seria usar vários Pi's como um cluster para ajudar no balanceamento de carga. Você pode começar a pesquisar por aqui sobre cluster.
Mas você realmente precisa usar o node.js?
Node.JS
foi projetado para ser usado quando você inicia (ou antecipa) a obtenção de centenas e milhares de solicitações que exigem que pequenos pedaços de dados sejam armazenados no banco de dados, armazenados em cache ou lidos com sobrecarga mínima do servidor. Então, você o dirige usando JS no cliente, masNode.JS
na verdade é conduzido por C / C ++. Então, o que acontece se você precisar de um módulo personalizado ou de uma alteração específica no código base?Em um aplicativo que exibe páginas da web, o node.js geralmente não supera o apache, por exemplo, em solicitações únicas. O recurso sem bloqueio do node.js é ótimo se você tiver milhares de solicitações por segundo durante a maior parte do dia; é aqui que o apache bloqueará e trava.
Um exemplo do mundo real
Para criar e instalar o Node.js no Pi *:
Obviamente, não há nada errado em usar o node.js em vez de outros e qual a melhor forma de aprender o nó, se não em um pequeno dispositivo como o Pi. Então você pode compilar o código você mesmo assim.
update: versões posteriores do nó (a versão atual é v0.8.18) podem ser construídas sem as etapas especiais abaixo
Em seguida, precisamos dizer ao compilador para usar a
armv6
arquitetura para a compilação:Em seguida, comente as linhas começando na marca 157, para remover as partes vfp3 e simulador. Como este é um JSON-como objeto, lembre-se de remover a vírgula na
CPPDEFINES
linha!Em seguida, o processo habitual de configuração, fabricação, instalação, NB, eu tive que especificar manualmente o local do libpath do OpenSSL:
É isso, agora você deve ter uma instalação do Node.JS funcionando!
* Referências e artigo original
Mas, como indicado em outras respostas, você pode simplesmente baixar o binário pré-compilado que funcionará.
Conclusões
Um bom pedaço de Pi não é ruim. Você pode executar praticamente qualquer coisa no Pi- Só não espere um desempenho no nível de produção.
fonte
P: Qual é a adequação do Raspberry Pi para atender aos aplicativos Node?
A: Muito bem adaptado :) Sem dúvida.
P: Se for esse o caso, como ajustar o Raspberry Pi para obter melhores resultados?
A: Não! Concentre-se em escrever aplicativos de nó muito bem projetados. Otimizar o script de aplicativos é o caminho a percorrer.
Sempre use um servidor proxy, por exemplo, nginex, apenas por um motivo: o Node.JS ainda está na infância (comparado ao Apache), para que você possa assumir que ainda há problemas de segurança a serem descobertos.
fonte