Este repositório contém o projeto Witchcraft em Go, que pode ser executado em modo servidor, cliente ou teste de estresse via Docker e Makefile.
| Comando | O que faz |
|---|---|
make network |
Cria a rede Docker para o projeto |
make build |
Faz build da imagem Docker do Witchcraft |
make run-server |
Roda o servidor Witchcraft em container Docker |
make run-client |
Roda o cliente Witchcraft em container Docker |
make run-stress |
Roda o teste de estresse do cliente |
make run-stress_match |
Roda o teste de estresse focado em partidas |
make restart |
Reinicia o servidor após modificação do código |
make clean |
Limpa imagens, containers e rede Docker |
make help |
Mostra essa lista de comandos |
💡 Algumas variáveis de ambiente podem ser definidas no Makefile ou no
docker run:
MODE-> Define se éserver,client,stressoustress_matchSERVER_ADDR-> Endereço IP/hostname do servidor para o cliente ou teste de stress- Variáveis de stress (
STRESS_CONCURRENCY,STRESS_REQUESTS,STRESS_TIMEOUT_MS,STRESS_RAMP_MS) podem ser ajustadas conforme necessidade
- Obter o endereço IP da máquina que será o servidor.
- Definir esse IP na variável de ambiente
SERVER_ADDRSERVER_ADDR_UDPdo Dockerfile ou viadocker run. - Rodar:
make build make run-server
- Para rodar clientes:
make run-client
- Obter o endereço IP da máquina que será o servidor.
- Definir esse IP na variável de ambiente
SERVER_ADDRSERVER_ADDR_UDPdo Dockerfile ou viadocker run. - Rodar:
make build make run-server
- Em outro terminal rodar:
make run-stres (ou make run-stress_match)
- Obter o endereço IP da máquina que será o servidor.
- Definir esse IP na variável de ambiente
SERVER_ADDRSERVER_ADDR_UDPdo Dockerfile ou viadocker run. - Rodar:
make build make run-server
- Obter o endereço IP da máquina que será o servidor.
- Definir esse IP na variável de ambiente
SERVER_ADDRSERVER_ADDR_UDPdo Dockerfile ou viadocker run. - Rodar:
make build make run-stres (ou make run-stress_match)
MODE:server,client,stressoustress_matchSERVER_ADDR: endereço IP ou hostname do servidor- Variáveis de teste de stress:
STRESS_CONCURRENCY: número de conexões simultâneasSTRESS_REQUESTS: número de requisições por conexãoSTRESS_TIMEOUT_MS: timeout em milissegundosSTRESS_RAMP_MS: tempo de ramp-up em milissegundos