Requisitos
Requisitos para fazer o build:
- Java 11.0.8
- Maven 3.6.3
Nos ambiente de desenvolvimento Linux, macOS e Cygwin, use o sdkman para instalar esses produtos.
Procedimento de instalação
-
Instalar o sdkman:
curl -s "https://get.sdkman.io" | bash -
Abrir outro terminal e instalar Java e Maven:
sdk install java 11.0.8.hs-adptsdk install maven 3.6.3
Build
Para executar o build
mvn clean install
Profiles Maven
Profile "default"
O profile "default" (quando nenhum profile é definido ao executar o Maven) não cria nenhuma imagem e é adequado para ser usado durante o desenvolvimento para execução local.
A execução de cada serviço deve ser feita através do comando
mvn spring-boot:run
Profile build-image
Cria imagem OCI através de um plugin nativo do Spring Boot baseado em Cloud Native Buildpacks (usando o Paketo Java buildpack)
Para criar a imagem:
mvn clean install -P build-image
Essa imagem pode ser usada no docker e docker-compose.
Profile kubernetes
Acrescenta dependencia do Spring Boot Cloud para rodar em ambientes baseados em Kubernetes (como o OpenShift)
A imagem deve ser criada com o comando a seguir:
mvn clean install -P build-image,kubernetes
Execução local
Iniciar IBM MQ
docker run \
--env LICENSE=accept \
--env MQ_QMGR_NAME=QM1 \
--publish 1414:1414 \
--publish 9443:9443 \
--detach \
ibmcom/mq
https://localhost:9443/ibmmq/console
User: admin
Password: passw0rd
Iniciar aplicação
Executar o dummy-responder
./responder.sh
Executar o servidor
./server.sh
Abrir um cliente
./client.sh
Para fazer upload de uma nova configuração (arquivo registry.txt)
./upload.sh
Para terminar o servidor
./shutdown.sh
Debug
O script server.sh já habilita a porta 5005 para debug remoto a partir de um IDE.
Monitoração
Mostrar conexões ativas
curl -s -X GET http://localhost:8081/connection/
Mostrar informações de uma conexão
curl -s -X GET http://localhost:8081/connection/{ID}
Remover uma conexão
curl -s -X DELETE http://localhost:8081/connection/{ID}
Ver os ids registrados
curl -s -X GET http://localhost:8081/registry/
Ver as regras de roteamento
curl -s -X GET http://localhost:8081/routingrules/
Execução com Docker
Instalar docker e docker-compose (no Ubuntu)
sudo apt install docker.io docker-compose
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
(Efetuar Logout e Login)
Gerar as imagens
mvn clean install -P build-image
Iniciar os serviços no docker (mq, spring-boot-admin-server, dummy-responder e atm-server)
docker-compose up
Executar o client local, acessando os serviços no docker
./client.sh
O Spring Boot Admin pode ser acessado pelo endereço
http://localhost:8080/
Para terminar todos os serviços
docker-compose down