sandrogiacom / crac-demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Demo CRaC

Demo para demonstrar como uma aplicação Spring Boot funciona com o mecanismo de Checkpoint e Restore (CRaC) disponibilizado em algumas distribuições do OpenJDK.

Requisitos:

  • Java 21
  • Docker ou similar

Build application

Crie o jar da aplicação:

./mvnw clean package

Build docker image

Crie a imagem docker:

docker build -t java21-crac .

Run docker image

Iniciando o container para simular o comportamento do CRaC

docker run --privileged -p 8080:8080 --name demo_crac -it java21-crac

Install JDK CRaC with SDKMAN

Dentro do container iniciado, vamos instalar o JDK compativel com CRaC

sdk install java 21.0.2.crac-zulu

Start app inside container

Vamos iniciar a aplicação informando o diretório onde a JVM deverá gravar os arquivos do snapshot

java -XX:CRaCCheckpointTo=cr -jar demo.jar

Enter container

Entrar no container em outro terminal

docker exec -it demo_crac /bin/bash

Take a checkpoint

Captturar um snapshot da aplicação em execução

jcmd demo.jar JDK.checkpoint

Start app from checkpoint

No mesmo terminal onde a aplicação estava sendo executada, execute o comando abaixo:

java -XX:CRaCRestoreFrom=cr

Other commands

Hit application

Envia 1000 requisições para a aplicação

siege -c 1 -r 1000 -b http://localhost:8080/hello

Stop container

docker stop demo_crac

Remove container

docker rm demo_crac

Start container

docker start demo_crac

Remove docker image:

docker rmi java21-crac

About

License:Apache License 2.0


Languages

Language:Kotlin 60.7%Language:Dockerfile 39.3%