Este projeto implementa um Eureka Server utilizando Spring Cloud Netflix.
Ele funciona como um Service Registry central para aplicações distribuídas, permitindo que microsserviços se
registrem e descubram uns aos outros dinamicamente, melhorando resiliência, escalabilidade
e observabilidade.
- Java 25
- Spring Boot 3.5
- Spring Cloud 2025.0.0
- Maven
- Docker (multi-stage)
- Spring Boot Actuator
- Spring Security (autenticação básica)
- Registro e descoberta de serviços via Eureka Dashboard
- Autenticação básica configurável via variáveis de ambiente (
EUREKA_USER,EUREKA_PASS) - Health-check e métricas via Spring Boot Actuator
- Logs configurados com rotação diária e níveis ajustados
- Configuração otimizada para Docker e produção
eureka-server/
├── src/
│ ├── main/
│ │ ├── java/com/infradomain/eurekaserver/EurekaServerApplication.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── logback-spring.xml
├── pom.xml
├── Dockerfile
└── README.md
git clone https://github.com/JuhMaran/eureka-server.git
cd eureka-servermvn clean package -DskipTestsjava -jar target/eureka-server-1.0.0.jarhttp://localhost:8761/
Credenciais padrão:
Usuário: admin
Senha: admin123
docker build -t eureka-server .docker run -d \
-p 8761:8761 \
-e APP_PORT=8761 \
-e EUREKA_USER=meuUser \
-e EUREKA_PASS=minhaSenhaSegura \
-e EUREKA_HOST=eureka.local \
--name eureka-server \
eureka-serverhttp://localhost:8761/
Use o usuário e senha definidos nas variáveis EUREKA_USER e EUREKA_PASS.
| Variável | Descrição | Valor padrão |
|---|---|---|
APP_PORT |
Porta do servidor Eureka | 8761 |
JAVA_OPTS |
Parâmetros de memória e performance da JVM | -Xms256m -Xmx512m |
EUREKA_USER |
Usuário para autenticação básica | admin |
EUREKA_PASS |
Senha do usuário do Eureka | admin123 |
EUREKA_HOST |
Hostname/IP da instância do Eureka | localhost |
| Endpoint | Descrição | Exemplo |
|---|---|---|
/actuator/health |
Status da aplicação | http://localhost:8761/actuator/health |
/actuator/info |
Informações gerais | http://localhost:8761/actuator/info |
/actuator/metrics |
Métricas da JVM e requests | http://localhost:8761/actuator/metrics |
/actuator/env |
Variáveis de ambiente ativas | http://localhost:8761/actuator/env |
⚠️ Apenas usuários autenticados podem visualizar detalhes completos de health-check e métricas.
Principais parâmetros definidos em application.yml:
eureka:
client:
fetch-registry: false
register-with-eureka: false
server:
enable-self-preservation: true
eviction-interval-timer-in-ms: 60000
instance:
hostname: ${EUREKA_HOST:localhost}
prefer-ip-address: trueLogs são armazenados em:
logs/eureka-server.log
Configuração detalhada em logback-spring.xml:
- Log colorido no console
- Rotação diária de arquivos
- Histórico de 14 dias
- Níveis ajustados (
root: INFO,eureka: INFO)
Contribuições são bem-vindas! Abra uma issue para discutir melhorias, ou envie um pull request com suas alterações.
Distribuído sob a licença Apache License 2.0.
Juliane Maran Desenvolvedora e mantenedora do projeto GitHub · Email
- Acessar o
wsl - Build Manual:
docker build -t eureka-server . - Rodar container:
docker run -p 8761:8761 eureka-server - Logs em tempo real:
docker logs -f <container-id>
Se quiser que os serviços conversem entre si localmente
docker network create taptrack-net
docker run -d --network taptrack-net --name eureka eureka-server
docker run -d --network taptrack-net --name gateway api-gateway
docker run -d --network taptrack-net --name container-measure container-measure-service
docker run -d --network taptrack-net --name frontend -p 4200:4200 taptrack-frontend