mirror of
https://github.com/fastapi/fastapi.git
synced 2026-04-08 00:50:39 -04:00
đ Add Portuguese translation for docs/pt/docs/deployment/server-workers.md (#12220)
This commit is contained in:
152
docs/pt/docs/deployment/server-workers.md
Normal file
152
docs/pt/docs/deployment/server-workers.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# Trabalhadores do Servidor - Uvicorn com Trabalhadores
|
||||
|
||||
Vamos rever os conceitos de implantação anteriores:
|
||||
|
||||
* Segurança - HTTPS
|
||||
* Executando na inicialização
|
||||
* ReinicializaçÔes
|
||||
* **Replicação (o nĂșmero de processos em execução)**
|
||||
* MemĂłria
|
||||
* Etapas anteriores antes de iniciar
|
||||
|
||||
AtĂ© este ponto, com todos os tutoriais nos documentos, vocĂȘ provavelmente estava executando um **programa de servidor**, por exemplo, usando o comando `fastapi`, que executa o Uvicorn, executando um **Ășnico processo**.
|
||||
|
||||
Ao implantar aplicativos, vocĂȘ provavelmente desejarĂĄ ter alguma **replicação de processos** para aproveitar **vĂĄrios nĂșcleos** e poder lidar com mais solicitaçÔes.
|
||||
|
||||
Como vocĂȘ viu no capĂtulo anterior sobre [Conceitos de implantação](concepts.md){.internal-link target=_blank}, hĂĄ vĂĄrias estratĂ©gias que vocĂȘ pode usar.
|
||||
|
||||
Aqui mostrarei como usar o **Uvicorn** com **processos de trabalho** usando o comando `fastapi` ou o comando `uvicorn` diretamente.
|
||||
|
||||
/// info | "Informação"
|
||||
|
||||
Se vocĂȘ estiver usando contĂȘineres, por exemplo com Docker ou Kubernetes, falarei mais sobre isso no prĂłximo capĂtulo: [FastAPI em contĂȘineres - Docker](docker.md){.internal-link target=_blank}.
|
||||
|
||||
Em particular, ao executar no **Kubernetes** vocĂȘ provavelmente **nĂŁo** vai querer usar vĂĄrios trabalhadores e, em vez disso, executar **um Ășnico processo Uvicorn por contĂȘiner**, mas falarei sobre isso mais adiante neste capĂtulo.
|
||||
|
||||
///
|
||||
|
||||
## VĂĄrios trabalhadores
|
||||
|
||||
VocĂȘ pode iniciar vĂĄrios trabalhadores com a opção de linha de comando `--workers`:
|
||||
|
||||
//// tab | `fastapi`
|
||||
|
||||
Se vocĂȘ usar o comando `fastapi`:
|
||||
|
||||
<div class="termy">
|
||||
|
||||
```console
|
||||
$ <pre> <font color="#4E9A06">fastapi</font> run --workers 4 <u style="text-decoration-style:single">main.py</u>
|
||||
<font color="#3465A4">INFO </font> Using path <font color="#3465A4">main.py</font>
|
||||
<font color="#3465A4">INFO </font> Resolved absolute path <font color="#75507B">/home/user/code/awesomeapp/</font><font color="#AD7FA8">main.py</font>
|
||||
<font color="#3465A4">INFO </font> Searching for package file structure from directories with <font color="#3465A4">__init__.py</font> files
|
||||
<font color="#3465A4">INFO </font> Importing from <font color="#75507B">/home/user/code/</font><font color="#AD7FA8">awesomeapp</font>
|
||||
|
||||
ââ <font color="#8AE234"><b>Python module file</b></font> ââź
|
||||
â â
|
||||
â đ main.py â
|
||||
â â
|
||||
â°âââââââââââââââââââââââŻ
|
||||
|
||||
<font color="#3465A4">INFO </font> Importing module <font color="#4E9A06">main</font>
|
||||
<font color="#3465A4">INFO </font> Found importable FastAPI app
|
||||
|
||||
ââ <font color="#8AE234"><b>Importable FastAPI app</b></font> ââź
|
||||
â â
|
||||
â <span style="background-color:#272822"><font color="#FF4689">from</font></span><span style="background-color:#272822"><font color="#F8F8F2"> main </font></span><span style="background-color:#272822"><font color="#FF4689">import</font></span><span style="background-color:#272822"><font color="#F8F8F2"> app</font></span><span style="background-color:#272822"> </span> â
|
||||
â â
|
||||
â°âââââââââââââââââââââââââââŻ
|
||||
|
||||
<font color="#3465A4">INFO </font> Using import string <font color="#8AE234"><b>main:app</b></font>
|
||||
|
||||
<font color="#4E9A06">ââââââââââââ FastAPI CLI - Production mode ââââââââââââź</font>
|
||||
<font color="#4E9A06">â â</font>
|
||||
<font color="#4E9A06">â Serving at: http://0.0.0.0:8000 â</font>
|
||||
<font color="#4E9A06">â â</font>
|
||||
<font color="#4E9A06">â API docs: http://0.0.0.0:8000/docs â</font>
|
||||
<font color="#4E9A06">â â</font>
|
||||
<font color="#4E9A06">â Running in production mode, for development use: â</font>
|
||||
<font color="#4E9A06">â â</font>
|
||||
<font color="#4E9A06">â </font><font color="#8AE234"><b>fastapi dev</b></font><font color="#4E9A06"> â</font>
|
||||
<font color="#4E9A06">â â</font>
|
||||
<font color="#4E9A06">â°ââââââââââââââââââââââââââââââââââââââââââââââââââââââŻ</font>
|
||||
|
||||
<font color="#4E9A06">INFO</font>: Uvicorn running on <b>http://0.0.0.0:8000</b> (Press CTRL+C to quit)
|
||||
<font color="#4E9A06">INFO</font>: Started parent process [<font color="#34E2E2"><b>27365</b></font>]
|
||||
<font color="#4E9A06">INFO</font>: Started server process [<font color="#06989A">27368</font>]
|
||||
<font color="#4E9A06">INFO</font>: Waiting for application startup.
|
||||
<font color="#4E9A06">INFO</font>: Application startup complete.
|
||||
<font color="#4E9A06">INFO</font>: Started server process [<font color="#06989A">27369</font>]
|
||||
<font color="#4E9A06">INFO</font>: Waiting for application startup.
|
||||
<font color="#4E9A06">INFO</font>: Application startup complete.
|
||||
<font color="#4E9A06">INFO</font>: Started server process [<font color="#06989A">27370</font>]
|
||||
<font color="#4E9A06">INFO</font>: Waiting for application startup.
|
||||
<font color="#4E9A06">INFO</font>: Application startup complete.
|
||||
<font color="#4E9A06">INFO</font>: Started server process [<font color="#06989A">27367</font>]
|
||||
<font color="#4E9A06">INFO</font>: Waiting for application startup.
|
||||
<font color="#4E9A06">INFO</font>: Application startup complete.
|
||||
</pre>
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
////
|
||||
|
||||
//// tab | `uvicorn`
|
||||
|
||||
Se vocĂȘ preferir usar o comando `uvicorn` diretamente:
|
||||
|
||||
<div class="termy">
|
||||
|
||||
```console
|
||||
$ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4
|
||||
<font color="#A6E22E">INFO</font>: Uvicorn running on <b>http://0.0.0.0:8080</b> (Press CTRL+C to quit)
|
||||
<font color="#A6E22E">INFO</font>: Started parent process [<font color="#A1EFE4"><b>27365</b></font>]
|
||||
<font color="#A6E22E">INFO</font>: Started server process [<font color="#A1EFE4">27368</font>]
|
||||
<font color="#A6E22E">INFO</font>: Waiting for application startup.
|
||||
<font color="#A6E22E">INFO</font>: Application startup complete.
|
||||
<font color="#A6E22E">INFO</font>: Started server process [<font color="#A1EFE4">27369</font>]
|
||||
<font color="#A6E22E">INFO</font>: Waiting for application startup.
|
||||
<font color="#A6E22E">INFO</font>: Application startup complete.
|
||||
<font color="#A6E22E">INFO</font>: Started server process [<font color="#A1EFE4">27370</font>]
|
||||
<font color="#A6E22E">INFO</font>: Waiting for application startup.
|
||||
<font color="#A6E22E">INFO</font>: Application startup complete.
|
||||
<font color="#A6E22E">INFO</font>: Started server process [<font color="#A1EFE4">27367</font>]
|
||||
<font color="#A6E22E">INFO</font>: Waiting for application startup.
|
||||
<font color="#A6E22E">INFO</font>: Application startup complete.
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
////
|
||||
|
||||
A Ășnica opção nova aqui Ă© `--workers` informando ao Uvicorn para iniciar 4 processos de trabalho.
|
||||
|
||||
VocĂȘ tambĂ©m pode ver que ele mostra o **PID** de cada processo, `27365` para o processo pai (este Ă© o **gerenciador de processos**) e um para cada processo de trabalho: `27368`, `27369`, `27370` e `27367`.
|
||||
|
||||
## Conceitos de Implantação
|
||||
|
||||
Aqui vocĂȘ viu como usar vĂĄrios **trabalhadores** para **paralelizar** a execução do aplicativo, aproveitar **vĂĄrios nĂșcleos** na CPU e conseguir atender **mais solicitaçÔes**.
|
||||
|
||||
Da lista de conceitos de implantação acima, o uso de trabalhadores ajudaria principalmente com a parte da **replicação** e um pouco com as **reinicializaçÔes**, mas vocĂȘ ainda precisa cuidar dos outros:
|
||||
|
||||
* **Segurança - HTTPS**
|
||||
* **Executando na inicialização**
|
||||
* ***ReinicializaçÔes***
|
||||
* Replicação (o nĂșmero de processos em execução)
|
||||
* **MemĂłria**
|
||||
* **Etapas anteriores antes de iniciar**
|
||||
|
||||
## ContĂȘineres e Docker
|
||||
|
||||
No prĂłximo capĂtulo sobre [FastAPI em contĂȘineres - Docker](docker.md){.internal-link target=_blank}, explicarei algumas estratĂ©gias que vocĂȘ pode usar para lidar com os outros **conceitos de implantação**.
|
||||
|
||||
Vou mostrar como **construir sua prĂłpria imagem do zero** para executar um Ășnico processo Uvicorn. Ă um processo simples e provavelmente Ă© o que vocĂȘ gostaria de fazer ao usar um sistema de gerenciamento de contĂȘineres distribuĂdos como o **Kubernetes**.
|
||||
|
||||
## Recapitular
|
||||
|
||||
VocĂȘ pode usar vĂĄrios processos de trabalho com a opção CLI `--workers` com os comandos `fastapi` ou `uvicorn` para aproveitar as vantagens de **CPUs multi-core** e executar **vĂĄrios processos em paralelo**.
|
||||
|
||||
VocĂȘ pode usar essas ferramentas e ideias se estiver configurando **seu prĂłprio sistema de implantação** enquanto cuida dos outros conceitos de implantação.
|
||||
|
||||
Confira o prĂłximo capĂtulo para aprender sobre **FastAPI** com contĂȘineres (por exemplo, Docker e Kubernetes). VocĂȘ verĂĄ que essas ferramentas tĂȘm maneiras simples de resolver os outros **conceitos de implantação** tambĂ©m. âš
|
||||
Reference in New Issue
Block a user