Ich habe das Java-Framework "Quarkus" ausprobiert.

Einführung

Es gibt mehr Möglichkeiten, Anwendungen auf Docker-Containern auszuführen. Die Startzeit ist wichtig, wenn Sie in einem Container arbeiten. Wenn Java ausgeführt wird, wird es auf der JVM ausgeführt, das Starten dieser JVM dauert jedoch einige Zeit.

Dieses Mal eingeführte Quarkus ist ein Framework, das einen schnellen Start durch Erstellen einer nativen Binärdatei mit GraalVM realisiert.

Ausführungsumgebung

Voraussetzungen

Graal VM-Setup

Von hier graalvm-ce-1.0.0-rc13-macos-amd64.tar.gz Bitte herunterladen (Stand 12. März 2019).

Entpacken Sie es und legen Sie den gesamten Ordner in / Library / Java / JavaVirtualMachines ab.

Legen Sie die Umgebungsvariable GraalVM (GRAALVM_HOME) fest.

.bash_profile


GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-ce-1.0.0-rc13-macos-amd64/Contents/Home

Erstellen Sie ein Projekt

$ mvn io.quarkus:quarkus-maven-plugin:0.11.0:create \
    -DprojectGroupId=jp.acme \
    -DprojectArtifactId=getting-started \
    -DclassName="org.acme.quickstart.GreetingResource" \
    -Dpath="/hello"

Durch Ausführen des obigen Befehls wird ein Maven-Projekt wie unten gezeigt erstellt.

quarkus.png

Anwendungsstart

#Starten Sie im Entwicklungsmodus
$ mvn compile quarkus:dev

Hot Reload kann durch Booten im Entwicklungsmodus erreicht werden. Überprüfen Sie den Vorgang mit dem folgenden Befehl.

$ curl http://localhost:8080/hello

Build (native Binärgenerierung)

$ mvn package -Pnative -Dnative-image.docker-build=true
Möglichkeit Inhalt
-Pnative Geben Sie an, wann eine nativ ausführbare Binärdatei generiert werden soll
-Dnative-image.docker-build=true Geben Sie an, wann eine native Binärdatei generiert werden soll, die dem Betriebssystem in Docker entspricht

Da wir es diesmal auf Docker starten möchten, geben Sie auch `` -Dnative-image.docker-build = true``` an.

Das Erstellen wird einige Zeit dauern, wahrscheinlich weil native Binärdateien generiert werden.

Docker Build

$ docker build -f src/main/docker/Dockerfile -t <Bildname> .

Starten Sie den Docker-Container

$ docker run -i --rm -p 8080:8080 <Bildname>
2019-03-12 01:29:01,328 INFO  [io.quarkus](main) Quarkus 0.11.0 started in 0.004s. Listening on: http://0.0.0.0:8080
2019-03-12 01:29:01,328 INFO  [io.quarkus](main) Installed features: [cdi, resteasy]

Was Sie hier beachten sollten, ist die Startzeit. Wenn Sie das Protokoll nach dem Start überprüfen, wird "Quarkus 0.11.0 wurde in 0.004s gestartet" angezeigt. Mit anderen Worten, Sie können sehen, dass es in 0,004 Sekunden gestartet wurde. Es ist früh.

abschließend

Durch die Verwendung von Quarkus wird die Anwendung auf dem Container überwältigend schneller gestartet. Quarkus selbst ist gerade herausgekommen, daher denke ich, dass es schwierig sein wird, es in der Produktion praktisch umzusetzen, aber wenn die Entwicklung voranschreitet und mehr Informationen verfügbar sind, wird es meiner Meinung nach mehr Möglichkeiten geben, es praktisch zu machen. Ich freue mich darauf in der Zukunft.

Sie können Quarkus auch Erweiterungen hinzufügen. Die Standardeinstellung ist beispielsweise Java EE-Standard-CDI, es kann jedoch Spring-basiertes CDI verwendet werden. Wir werden Informationen austauschen, während wir diesen Bereich untersuchen.

Referenz

Recommended Posts

Ich habe das Java-Framework "Quarkus" ausprobiert.
Ich habe das neue Yuan-Problem in Java ausprobiert
Ich habe sofort QUARKUS ausprobiert
Ich habe den Sammlungsrahmen zusammengefasst.
Ich habe Drools (Java, InputStream) ausprobiert.
Ich habe versucht, Java REPL zu verwenden
Ich habe das FizzBuzz-Problem ausprobiert
[Java] Ich habe versucht, die Kombination zu implementieren.
Ich habe den Konstruktor (Java) studiert.
Ich habe versucht, Metaprogrammierung mit Java
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Eine Übersicht über das native Java-Framework Quarkus von Kubernetes
[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Java-Framework
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, UDP mit Java zu kommunizieren
Ich habe versucht, die Methode zu erklären
Überlegungen zum Java Persistence Framework 2017 (1)
[Rails] Ich habe versucht, die Anwendung zu löschen
Ich habe versucht, die Java8 Stream API zu verwenden
Ich habe versucht, JWT in Java zu verwenden
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe jetzt versucht, Java 8 zusammenzufassen
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden
Ich habe versucht, Java Memo LocalDate zu verwenden
Ich habe versucht, Google HttpClient von Java zu verwenden
Java14 kam heraus, also habe ich vorerst versucht aufzunehmen
Ich habe den Eingabe- / Ausgabetyp von Java Lambda ~ Map Edition ~ ausprobiert
Ich habe versucht, die Fehlermeldung beim Ausführen von Eclipse (Java) zu übersetzen.
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe versucht, das Java-kompatible FaaS-Formular "Fn Project" auszuführen.
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Erraten Sie das Java Persistence Framework 2017 (3) Reladomo
Ich habe Cassandras Object Mapper für Java ausprobiert
Ich habe versucht, Java-Lambda-Ausdrücke zusammenzufassen
[Tag: 5] Ich habe die Grundlagen von Java zusammengefasst
Ich habe versucht, das Iterator-Muster zu implementieren
Ich habe versucht, OpenCV mit Java + Tomcat zu verwenden
[Java] Ich habe die grundlegende Grammatik persönlich zusammengefasst.
Ich habe versucht, die Stream-API zusammenzufassen
Ich habe die AutoValue-Bibliothek mit Intellij ausprobiert
Ich ging zum Java Women's Club # 1
Ich habe Googles Aufnahmeprüfung (inoffiziell) [Java] ausprobiert.
[Einführung in Java] Ich habe versucht, das Wissen zusammenzufassen, das ich für wesentlich halte
Ich habe es mit Spring versucht.
Ich habe versucht, Tomcat zu setzen
Java Framework Vergleich
Ich habe youtubeDataApi ausprobiert.
Ich habe versucht, ① umzugestalten
Ich habe FizzBuzz ausprobiert.
Ich habe JHipster 5.1 ausprobiert
[Java] Sammlungsframework
Ich habe versucht, Java einfach auf meinen Mac zu bringen
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen