Pular para conteúdo

Executar microserviços localmente

Execute os comandos na raiz do serviço escolhido. Separe execução no host, execução em container e execução no cluster: localhost identifica ambientes diferentes em cada caso.

Java / Quarkus

Com Java 21 e dependências resolvidas, JSON Handler e outros serviços Quarkus possuem Maven Wrapper:

./mvnw.cmd quarkus:dev

No Linux, use ./mvnw quarkus:dev. O modo dev do Quarkus permite recarga de código. Para executar o artefato JVM já empacotado, use o diretório target/quarkus-app completo:

java -jar target/quarkus-app/quarkus-run.jar

Para JSON Handler, a porta é 8080 e o health fica em /jsonhandler/q/health/ready. O tutorial completo mostra a mesma aplicação em container, expondo somente 127.0.0.1:18080.

Serviço Particularidade a conferir
JSON Handler /jsonhandler, porta 8080; processamento em memória
Builder /builder, porta 8080; integrações Core/iPaaS e cache
Core /core; MongoDB e outras dependências conforme configuração
BFF quarkus.http.root-path=/; não copiar /gateway do README como raiz atual

Use application.properties e profiles como fonte das portas e URLs. Não inicie todos os serviços na porta padrão 8080. Quando utilizar override de porta, ajuste também os clients que o consomem. O profile %test não representa a configuração de desenvolvimento.

Go

Leia go.mod e use o ponto de entrada efetivo. Exemplos presentes nos repositórios:

Serviço Comando na raiz do respectivo repositório
Router go run main.go
Discovery go run ./cmd/totvs-gateway-discovery
Broker go run ./cmd/api

go run não fornece hot reload automaticamente. Router lê PORT e CONTEXT_PATH, com defaults 8080 e /router. Esses nomes não se aplicam automaticamente ao Broker ou Discovery: consulte seus módulos de configuração.

Conexão a dependências

URLs *.svc.cluster.local são nomes internos do Kubernetes. Uma aplicação no host precisa de acesso apropriado à dependência, por exemplo port-forward para um Service local, e configuração coerente dos clients. O encaminhamento de uma porta não muda automaticamente URLs de autenticação, emissor de tokens ou resolução de tenants.

Use o inventário de integrações para escolher o conjunto necessário e Debugging e troubleshooting para distinguir falha de processo, conectividade e contrato. O exemplo funcional sem dependências externas está no Primeiro deploy local.

Referências no código