Aplicação de exemplo das tecnologia Spring Cloud Config Server e Client, esse exemplo foi usado na apresentação: MicroServices: Configurações
docker-compose.yml
: Arquivo responsável por orquestrar o deploy e execução das aplicaçõesexemplo.springcloudconfig.server
(diretório): Projeto Java que utiliza Spring Boot e Spring Cloud Config Server para prover um gerenciador de configurações para outras aplicações, chamado de Config Serverexemplo.springcloudconfig.service01
(diretório): Projeto Java que Spring Boot e Spring Cloud Config Client que consome dados da aplicação Config Server para se configurarexemplo.springcloudconfig.service02
(diretório): Projeto Java que Spring Boot e Spring Cloud Config Client que consome dados da aplicação Config Server para se configurarexemplo.springcloudconfig.config.repo
(repositório): Repositório com os arquivos de configuração das aplicações, chamado de Config Repository
Obs: Necessário ter apenas Docker e Docker Compose instalados para execução.
git clone https://github.com/justiandre/exemplo.springcloudconfig.git
docker-compose up -d --build
Para visualizar a aplicação funcionando existem alguns endpoints:
- Config Server
- http://localhost:9999/service01-default.yml: Lista as configurações
default
da aplicaçãoservice01
- http://localhost:9999/service01-prod.yml: Lista as configurações do perfil
prod
da aplicaçãoservice01
- http://localhost:9999/service02-default.yml: Lista as configurações
default
da aplicaçãoservice02
- http://localhost:9999/service02-prod.yml: Lista as configurações do perfil
prod
da aplicaçãoservice02
- http://localhost:9999/service01-default.yml: Lista as configurações
- Service01
- http://localhost:8080/teste: Mostra o conteúdo da configuração
config.valor-test
na aplicaçãoservice01
que foi carregado doConfigServer
- http://localhost:8080/teste: Mostra o conteúdo da configuração
- Service02
- http://localhost:8081/teste: Mostra o conteúdo da configuração
config.valor-test
na aplicaçãoservice02
que foi carregado doConfigServer
- http://localhost:8081/teste: Mostra o conteúdo da configuração
Obs: Para executar esse exemplo é necessário fazer um fork do repositório de configurações e para iniciar o teste é necessário a url deste repositório.
- Crie um arquivo env na raiz do projeto (
exemplo.springcloudconfig
) com o seguinte conteúdo:
SPRING_CLOUD_CONFIG_SERVER_GIT_URI=URL_DO_REPOSITORIO_CRIADO
- Execute o projeto
docker-compose up -d --build
-
Acesse a url do sistema
Service01
: http://localhost:8080/teste -
Altere o valor da propriedade
config.valor-test
do projetoService01
no repositório criado, arquivo:$REPO/service01/service01.yml
-
Notifique o
ConfigServer
para que ele informe as aplicações clientes que as configurações mudaram
curl -X POST \
http://admin:admin@localhost:9999/bus/refresh \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{}'
- Acesse novamente o sistema
Service01
: http://localhost:8080/teste para ver a configuração atualizada