O que é o Swoole
O Swoole é uma extensão PHP escrita em C e C++ que entrega motor de eventos, escalonador de corrotinas, servidores e clientes de rede. A instalação segue o caminho de qualquer extensão, pelo PECL, e o resultado fica disponível para o interpretador do serviço.
O uso típico é manter a aplicação carregada num processo que atende muitas requisições, sem criar um processo novo a cada chamada. APIs, WebSocket e serviços com muitas conexões abertas aparecem entre os casos comuns.
Workers de vida longa
O servidor do Swoole mantém workers ativos e distribui as requisições entre eles. Um worker pode usar vários núcleos por meio de processos, e as tarefas longas seguem para workers dedicados.
Esse desenho reduz o custo por requisição e aumenta a responsabilidade do código. O processo que atendeu uma chamada vai atender a próxima, então o ambiente precisa voltar ao estado inicial depois de cada resposta.
Corrotina não é paralelismo de processador
A corrotina permite que outra tarefa avance enquanto uma operação de entrada e saída aguarda. A chamada de rede, a consulta ao banco e a leitura de arquivo aproveitam essa pausa.
Um trecho que consome processador ocupa o worker até terminar. Para esse caso, o caminho é distribuir o trabalho em processos, porque a corrotina não divide essa carga.
Como conferir a instalação
php --ri swoole mostra a versão e as opções compiladas quando a extensão está carregada. A matriz de versões do projeto relaciona cada série do Swoole às versões de PHP aceitas.
O comando roda num processo novo e não descreve o worker que está no ar. Para relacionar a extensão instalada ao serviço, substitua o processo e os workers e confira de novo dentro do container ou da máquina.
O que a extensão não resolve
O Swoole não corrige falha do interpretador. Um aviso de execução remota de código no PHP alcança o serviço mesmo com o runtime ativo. A atualização do interpretador continua sendo o caminho, e a extensão também não substitui a análise de concorrência e de uso de memória na aplicação.
Para acompanhar a configuração do runtime e a conferência de versão no serviço, a Formação DevOps trata dessa rotina. Quando você precisa revisar o comportamento do processo ativo no seu projeto, o Desenvolvimento Colaborativo da Dev Side Studio permite conferir a execução durante a sessão.
Dúvidas frequentes
Perguntas frequentes sobre Swoole
- O Swoole substitui o PHP-FPM?
- Ele ocupa o lugar do FPM no atendimento das requisições. A aplicação roda num processo que permanece ativo, e o servidor web encaminha o tráfego para ele. O interpretador por baixo continua sendo o PHP instalado.
- Corrotina executa código em paralelo?
- A corrotina libera o worker durante a espera. Enquanto uma tarefa aguarda uma operação de entrada e saída, outra pode avançar no mesmo worker. Um trecho que consome processador ocupa o worker até terminar.
- Por que o estado do processo importa tanto no Swoole?
- Os workers permanecem ativos entre requisições. Variável global, estado estático e conexão aberta podem sobreviver a várias chamadas, então cada requisição precisa deixar o ambiente como encontrou.
- Como conferir a versão instalada?
- `php --ri swoole` mostra a versão e a configuração da extensão quando ela está carregada. A matriz de compatibilidade do projeto relaciona cada série do Swoole às versões de PHP aceitas.
Para continuar
Recursos relacionados
Repositório
Swoole: repositório e documentação
Descreve o motor de eventos, as corrotinas, os servidores e o modelo de workers.
Abrir recursoDocumentação
Swoole: versões com suporte
Relaciona cada série da extensão às versões de PHP compatíveis e ao estado de manutenção.
Abrir recursoAplicação na formação
Formação DevOps
Na Formação DevOps, o Swoole aparece como runtime que muda a conferência de versão e de estado entre requisições no serviço PHP.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.