Ein neues Java-Framework mit GraalVM als Ausführungs-VM. Red Hat ist der Entwickler.
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.
Quarkus 'Ziel ist es, Java weiterzuentwickeln, indem Entwicklern ein integriertes reaktives und imperiales Programmiermodell zur Verfügung gestellt wird, das eine breite Palette verteilter Anwendungsarchitekturen in Umgebungen wie Kubernetes und ohne Server unterstützt. Plattform.
Wie im offiziellen Blog angegeben, scheint es der Ausführungsumgebung wie serverlos zu entsprechen, in der Spring und Play leicht verzögert sind.
Auch, wie man mit dem herkömmlichen imperativen Modell schreibt Eine der großen Attraktionen ist, dass es beide reaktiven Schreibstile unterstützt.
Mit RxJava sollten Sie ein flexibleres und weniger latenzempfindliches Anwendungsverhalten erzielen können.
Es ist auch flexibel für vorhandene Bibliotheken. Ist es also nicht mehr als genug, um schnell etwas zu erstellen?
Zusätzlich zur Verwendung von ORM im Ruhezustand mit Standardspezifikationen Es scheint MariaDB und PostgreSQL zu unterstützen.
Sie können übrigens auch in Kotlin schreiben.
Weitere Informationen finden Sie hier. ↓↓↓ https://quarkus.io/get-started/
macOS Mojave 10.14.3
--JJ1.8 mit JAVA_HOME und höher --Maven 3.5.3 und höher
Da es sich um einen Mac handelt, installieren Sie ihn mit Homebrew
brew update && brew install Maven
Überprüfen Sie, ob es installiert ist
mvn --version
Erfolg, wenn es so zurückkehrt
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"
Installieren Sie GraalVM (graalvm-ce-1.0.0-rc13-macos-amd64.tar.gz) ↓↓↓ https://github.com/oracle/graal/releases
Festlegen der GraalVM-Umgebungsvariablen (GRAALVM_HOME) Bitte übergeben Sie den Pfad entsprechend Ihrer Shell. bash -> bashprofile zsh -> zshrc
GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-ce-1.0.0-rc13-macos-amd64/Contents/Home
Wechseln Sie in das Verzeichnis, in dem Sie das Projekt ablegen möchten
$ mvn io.quarkus:quarkus-maven-plugin:0.11.0:create \
-DprojectGroupId=jp.acme \
-DprojectArtifactId=getting-started \
-DclassName="org.acme.quickstart.GreetingResource" \
-Dpath="/hello"
Dadurch wird eine Anwendung gestartet, die auf Maven basiert und auf QUARKUS basiert. Die Verzeichnisstruktur sieht so aus
Dockerfile für / Docker Sie möchten den erforderlichen Java-Code in / java einfügen. Hier gibt es GreetingResource.java und der Inhalt ist ↓↓
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";
}
}
Enthält einen einfachen Code, der "Hallo" zurückgibt, wenn GET mit / Hallo.
#Starten Sie im Entwicklungsmodus
$ mvn compile quarkus:dev
Hot Reload funktioniert beim Start im Entwicklungsmodus. (Hot Reload ist eine Funktion, die den Unterschied bei jeder Änderung kompiliert und widerspiegelt.)
Bestätigen Sie, ob der Start erfolgreich ist
Es wird auf Port 8080 mit den Standardeinstellungen gestartet. Drücken Sie also auf Curl und prüfen Sie, ob Hallo zurückgegeben wird.
curl http://localhost:8080/hello
$ mvn package -Pnative -Dnative-image.docker-build=true
Was ist überhaupt eine native Binärdatei? Es ist eine Maschinensprache, die für die Ausführung erforderliche Anweisungen enthält, die für jede Ausführungsmaschine vorbereitet werden. Mit anderen Worten, durch die Verwendung von GraalVM spuckt Linux eine für Linux optimierte Maschinensprache aus.
Dieser Vorgang dauert übrigens einige Zeit. Das Originaldokument sagt auch, dass es mir 15 Minuten gibt.
Lassen Sie uns Docker bauen, wenn wir hier sind. Klicken Sie hier für Befehle
$ docker build -f src/main/docker/Dockerfile -t <Bildname> .
Dadurch wird das Image mithilfe der Docker-Datei erstellt, die in der gerade erstellten frühen Anwendung enthalten ist. Das Innere der Docker-Datei sieht so aus
####
# 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
Wie Sie sehen können, wird die native Binärdatei unter target verwendet.
$ docker run -i --rm -p 8080:8080 <Bildname>
Sie können das vorherige Bild starten, indem Sie diesen Befehl drücken. Portnummer 8080 Zu diesem Zeitpunkt wird die Ausführungsgeschwindigkeit angezeigt, sie ist jedoch extrem schnell.
Es begann in 0,005 Sekunden an meiner Hand.
Durch die Verwendung von QUARKUS scheint es möglich zu sein, eine Anwendung zu entwickeln, die die Schwäche der JVM überwindet, die standardmäßig Docker unterstützt. Dies ist die Startgeschwindigkeit. Es kann auch gesagt werden, dass es für eine groß angelegte Entwicklung geeignet ist, da eine gemeinsame Entwicklungsumgebung basierend auf dem erstellten Docker-Image erstellt werden kann.
Ich hoffe, dass dies eine Gelegenheit ist, eine Umgebung zu schaffen, in der Sie Java noch mehr genießen können. Ich interessiere mich so für GraalVM, dass ich einen weiteren Artikel über GraalVM schreiben werde.
Recommended Posts