Un nouveau framework Java avec GraalVM comme machine virtuelle d'exécution. Red Hat est le développeur.
The goal of Quarkus is to make Java a leading platform in Kubernetes and serverless environments while offering developers a unified reactive and imperative programming model to optimally address a wider range of distributed application architectures.
L'objectif de Quarkus est de faire progresser Java en fournissant aux développeurs un modèle de programmation réactif et impérial intégré pour prendre en charge un large éventail d'architectures d'applications distribuées dans des environnements tels que Kubernetes et sans serveur. Plate-forme.
Comme indiqué dans le blog officiel, il semble que cela corresponde à l'environnement d'exécution tel que sans serveur où Spring et Play sont légèrement retardés.
Aussi, comment écrire avec le modèle impératif conventionnel L'un des grands attraits est qu'il prend en charge les deux styles d'écriture réactifs.
RxJava devrait vous permettre d'obtenir un comportement d'application plus flexible et moins sensible à la latence.
Il est également flexible pour les bibliothèques existantes, alors n'est-ce pas plus que suffisant pour créer quelque chose rapidement?
En plus d'utiliser Hibernate ORM avec les spécifications par défaut Il semble prendre en charge MariaDB et PostgreSQL.
Au fait, vous pouvez également écrire en Kotlin.
Pour plus d'informations, cliquez ici. ↓↓↓ https://quarkus.io/get-started/
macOS Mojave 10.14.3
--JJ1.8 avec JAVA_HOME et supérieur --Maven 3.5.3 et supérieur
Puisqu'il s'agit d'un Mac, installez-le avec homebrew
brew update && brew install Maven
Vérifiez s'il est installé
mvn --version
Succès si ça revient comme ça
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00)
Maven home: /usr/local/Cellar/maven/3.6.0/libexec
Java version: 1.8.0_162, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.3", arch: "x86_64", family: "mac"
Installez GraalVM (graalvm-ce-1.0.0-rc13-macos-amd64.tar.gz) ↓↓↓ https://github.com/oracle/graal/releases
Définir la variable d'environnement GraalVM (GRAALVM_HOME) Veuillez passer le chemin en fonction de votre shell. bash -> bashprofile zsh -> zshrc
GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-ce-1.0.0-rc13-macos-amd64/Contents/Home
Allez dans le répertoire où vous souhaitez placer le projet
$ mvn io.quarkus:quarkus-maven-plugin:0.11.0:create \
-DprojectGroupId=jp.acme \
-DprojectArtifactId=getting-started \
-DclassName="org.acme.quickstart.GreetingResource" \
-Dpath="/hello"
Cela lancera une application basée sur Maven basée sur QUARKUS. La structure du répertoire ressemble à ceci
Dockerfile pour / docker Envie de mettre le code Java nécessaire dans / java Ici, il y a GreetingResource.java et le contenu est ↓↓
GreetingResource.java
package org.acme.quickstart;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "hello";
}
}
Contient un code simple qui renvoie "hello" quand GET avec / hello.
#Démarrer en mode développement
$ mvn compile quarkus:dev
Le rechargement à chaud fonctionne lorsqu'il est lancé en mode développement. (Le rechargement à chaud est une fonction qui compile et reflète la différence à chaque fois qu'un changement est effectué)
Confirmer si le démarrage a réussi
Il démarrera sur le port 8080 avec les paramètres par défaut, alors appuyez sur curl et vérifiez si bonjour est retourné.
curl http://localhost:8080/hello
$ mvn package -Pnative -Dnative-image.docker-build=true
Qu'est-ce qu'un binaire natif en premier lieu? C'est un langage machine qui donne les instructions nécessaires à l'exécution, qui est préparée pour chaque machine d'exécution. En d'autres termes, en utilisant GraalVM, Linux crachera un langage machine optimisé pour Linux.
Au fait, ce processus prend du temps. Le document original dit également qu'il me donne 15 minutes.
Construisons Docker quand nous arriverons ici. Cliquez ici pour les commandes
$ docker build -f src/main/docker/Dockerfile -t <Nom de l'image> .
Cela créera l'image à l'aide du Dockerfile inclus dans la première application que vous venez de créer. L'intérieur du Dockerfile ressemble à ceci
####
# Before building the docker image run:
#
# mvn package -Pnative -Dnative-image.docker-build=true
#
# Then, build the image with:
#
# docker build -f src/main/docker/Dockerfile -t quarkus/getting-started .
#
# Then run the container using:
#
# docker run -i --rm -p 8080:8080 quarkus/getting-started
#
###
FROM registry.fedoraproject.org/fedora-minimal
WORKDIR /work/
COPY target/*-runner /work/application
RUN chmod 775 /work
EXPOSE 8080
CMD ["./application", "-Dquarkus.http.host=0.0.0.0"]
COPY target/*-runner /work/application
Comme vous pouvez le voir, il indique qu'il utilisera le binaire natif sous target.
$ docker run -i --rm -p 8080:8080 <Nom de l'image>
Vous pouvez démarrer l'image précédente en appuyant sur cette commande. Numéro de port 8080 A ce moment, la vitesse d'exécution est affichée, mais elle est extrêmement rapide.
Cela a commencé en 0,005 seconde à ma main.
En utilisant QUARKUS, il semble possible de développer une application qui surmonte la faiblesse de la JVM qui prend en charge Docker par défaut, qui est la vitesse de démarrage. En outre, on peut dire qu'il convient au développement à grande échelle car un environnement de développement commun peut être créé en fonction de l'image Docker créée.
J'espère que ce sera l'occasion de créer un environnement où vous pourrez profiter encore plus de Java. Je suis tellement intéressé par GraalVM que j'écrirai un autre article sur GraalVM.
Recommended Posts