{"id":74793,"date":"2020-03-20T20:42:19","date_gmt":"2020-03-20T17:42:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka"},"modified":"2020-03-20T20:42:19","modified_gmt":"2020-03-20T17:42:19","slug":"quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka","title":{"rendered":"Quarkus \u2014 \u00dcberschall-Subatomare Java. Ein kurzer \u00dcberblick \u00fcber das Framework","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Quarkus \u2014 \u00dcberschall-Subatomare Java. Ein kurzer \u00dcberblick \u00fcber das Framework\" src=\"\/wp-content\/uploads\/2020\/03\/b40e193b4a696206aad8b08a5e4795a1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"vvedenie\">Einf\u00fchrung<\/h3>\n<p><\/p>\n<p>Am siebten M\u00e4rz hat das Unternehmen RedHat (bald IBM) <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2019\/03\/07\/quarkus-next-generation-kubernetes-native-java-framework\/\">pr\u00e4sentierte<\/a><\/noindex> ein neues Framework \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/\">Quarkus<\/a><\/noindex>. Laut den Entwicklern basiert dieses Framework auf GraalVM und OpenJDK HotSpot und ist f\u00fcr Kubernetes konzipiert. Der Quarkus-Stack umfasst: JPA\/Hibernate, JAX-RS\/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus und mehr.<\/p>\n<p><\/p>\n<p>Das Ziel der Entwicklung ist es, Java zur f\u00fchrenden Plattform f\u00fcr Bereitstellungen in Kubernetes und die Entwicklung von serverlosen Anwendungen zu machen, indem Entwicklern einen einheitlichen Ansatz sowohl f\u00fcr reaktive als auch f\u00fcr imperative Programmierung angeboten wird.<\/p>\n<p><\/p>\n<p>Werfen wir einen Blick auf <noindex><a rel=\"nofollow\" href=\"https:\/\/dzone.com\/articles\/classification-of-development-frameworks-for-enter\"><u>dieses<\/u><\/a><\/noindex> \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432, \u0442\u043e Quarkus \u0433\u0434\u0435-\u0442\u043e \u043c\u0435\u0436\u0434\u0443 &#171;Aggregators\/Code Generators&#187; \u0438 &#171;High-level fullstack frameworks&#187;. \u042d\u0442\u043e \u0443\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440, \u043d\u043e \u0438 \u0434\u043e full-stack \u043d\u0435 \u0434\u043e\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442, \u0442.\u043a. \u0437\u0430\u0442\u043e\u0447\u0435\u043d \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 backend.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Hohe Startgeschwindigkeit und geringer Speicherverbrauch wurden versprochen. Hier sind die Daten von der Webseite des Entwicklers:<\/p>\n<p><\/p>\n<p>Zeit vom Start bis zur ersten Antwort (s):<\/p>\n<p><\/p>\n<p>Konfiguration<br \/>\nREST<br \/>\nREST+JPA<\/p>\n<p>Quarkus+GraalVM<br \/>\n0.014<br \/>\n0.055<\/p>\n<p>Quarkus+OpenJDK<br \/>\n0.75<br \/>\n2.5<\/p>\n<p>Traditioneller Cloud-Native-Stack*<br \/>\n4.3<br \/>\n9.5<\/p>\n<p><\/p>\n<p>Speicherverbrauch (Mb):<\/p>\n<p><\/p>\n<p>Konfiguration<br \/>\nREST<br \/>\nREST+JPA<\/p>\n<p>Quarkus+GraalVM<br \/>\n13<br \/>\n35<\/p>\n<p>Quarkus+OpenJDK<br \/>\n74<br \/>\n130<\/p>\n<p>Traditioneller Cloud-Native-Stack*<br \/>\n140<br \/>\n218<\/p>\n<p><\/p>\n<p>Impressive, nicht wahr?<\/p>\n<p><\/p>\n<p>*<em>Zu diesem Technologie-Stack habe ich keine Informationen gefunden; es kann angenommen werden, dass es sich um ein Spring Boot mit zus\u00e4tzlichem Aufsatz handelt.<\/em>.<\/p>\n<p><\/p>\n<h3 id=\"hello-world\">Hallo Welt!<\/h3>\n<p><\/p>\n<p>Die einfachste Anwendung, die mit Quarkus geschrieben wurde, sieht so aus:<\/p>\n<p><\/p>\n<pre><code class=\"java\">@Path(\"\/hello\")\npublic class GreetingResource {\n\n   @GET\n   @Produces(MediaType.TEXT_PLAIN)\n   public String hello() {\n       return \"hello\";\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>Das ist buchst\u00e4blich eine Klasse und das reicht aus! Sie k\u00f6nnen die Anwendung mit Maven im Entwicklermodus starten:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">mvn compile quarkus:dev\n\u2026\n$ curl http:\/\/localhost:8080\/hello\nhello<\/code><\/pre>\n<p><\/p>\n<p>Der Unterschied zu einer gew\u00f6hnlichen Anwendung ist, dass es keine Klasse Application gibt! Quarkus unterst\u00fctzt Hot Reload, sodass Sie die Anwendung \u00e4ndern k\u00f6nnen, ohne sie neu zu starten, wodurch die Entwicklung noch schneller wird. <\/p>\n<p><\/p>\n<p>Was kommt als N\u00e4chstes? Sie k\u00f6nnen einen Service im Controller mit der Annotation <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/inject\/\" class=\"user_link\">Inject<\/a><\/noindex>. Der Service-Code:<\/p>\n<p><\/p>\n<pre><code class=\"java\">@ApplicationScoped\npublic class GreetingService {\n\n   public String greeting(String name) {\n       return \"Hallo \" + name + \"!\";\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>Controller:<\/p>\n<p><\/p>\n<pre><code class=\"java\">@Path(\"\/hello\")\npublic class GreetingResource {\n\n   @Inject\n   GreetingService service;\n\n   @GET\n   @Produces(MediaType.TEXT_PLAIN)\n   @Path(\"\/{name}\")\n   public String greeting(@PathParam(\"name\") String name) {\n       return service.greeting(name);\n   }\n}<\/code><\/pre>\n<p><\/p>\n<pre><code class=\"plaintext\">$ curl http:\/\/localhost:8080\/hello\/developer\nHallo developer!<\/code><\/pre>\n<p><\/p>\n<p>Beachten Sie, dass Quarkus die standardm\u00e4\u00dfigen Annotationen aus den vertrauten Frameworks \u2014 CDI und JAX-RS \u2014 verwendet. Es gibt nichts Neu zu lernen, wenn Sie zuvor mit CDI und JAX-RS gearbeitet haben. <\/p>\n<p><\/p>\n<h3 id=\"rabota-s-bazoy-dannyh\">Arbeiten mit der Datenbank<\/h3>\n<p><\/p>\n<p>Hibernate und die Standard-JPA-Anmerkungen werden f\u00fcr die Entit\u00e4ten verwendet. Wie auch bei REST-Controllern ist es erforderlich, nur minimalen Code zu schreiben. Es gen\u00fcgt, die Abh\u00e4ngigkeiten in der Build-Datei anzugeben und die Anmerkungen zu positionieren. <code>@Entity<\/code> und die Datasource in application.properties zu konfigurieren. <\/p>\n<p><\/p>\n<p>Das war's. Keine sessionFactory, persistence.xml und andere Servicedateien. Wir schreiben nur den notwendigen Code. Bei Bedarf kann jedoch eine persistence.xml-Datei erstellt werden, um die ORM-Schicht feiner zu konfigurieren. <\/p>\n<p><\/p>\n<p>Quarkus unterst\u00fctzt das Caching von Entit\u00e4ten, Sammlungen f\u00fcr Eins-zu-Viele-Beziehungen sowie von Anfragen. Auf den ersten Blick sieht das vielversprechend aus, aber es <em>ist lokales<\/em> Caching, das nur f\u00fcr einen einzelnen Kubernetes-Knoten gilt. Das bedeutet, dass die Caches verschiedener Knoten nicht miteinander synchronisiert sind. Ich hoffe, das ist nur vor\u00fcbergehend. <\/p>\n<p><\/p>\n<h3 id=\"asinhronnoe-vypolnenie-koda\">Asynchrone Codeausf\u00fchrung<\/h3>\n<p><\/p>\n<p>Wie bereits erw\u00e4hnt, unterst\u00fctzt Quarkus auch den reaktiven Programmierstil. Der Code der vorherigen Anwendung kann in einer anderen Form geschrieben werden.<\/p>\n<p><\/p>\n<pre><code class=\"java\">@Path(\"\/hello\")\npublic class GreetingResource {\n\n   @GET\n   @Produces(MediaType.TEXT_PLAIN)\n   @Path(\"\/{name}\")\n   public CompletionStage greeting(@PathParam(\"name\") String name) {\n       return CompletableFuture.supplyAsync(() -&gt; {\n           return \"Hello \" + name + \"!\";\n       });\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>Asynchroner Code kann auch in den Dienst \u00fcbertragen werden, das Ergebnis bleibt dasselbe. <\/p>\n<p><\/p>\n<h3 id=\"testirovanie\">Testen<\/h3>\n<p><\/p>\n<p>Tests f\u00fcr Quarkus-Anwendungen k\u00f6nnen in JUnit4 oder JUnit5 geschrieben werden. Im Folgenden ist ein Beispiel f\u00fcr einen Test f\u00fcr den Endpoint dargestellt, der mit RestAssured geschrieben wurde, aber auch ein anderer Rahmen verwendet werden kann: <\/p>\n<p><\/p>\n<pre><code class=\"java\">@QuarkusTest\npublic class GreetingResourceTest {\n\n   @Test\n   public void testGreetingEndpoint() {\n       String uuid = UUID.randomUUID().toString();\n       given()\n         .pathParam(\"name\", uuid)\n         .when().get(\"\/hello\/{name}\")\n         .then()\n           .statusCode(200)\n           .body(is(\"Hallo \" + uuid + \"!\"));\n   }\n}<\/code><\/pre>\n<p><\/p>\n<p>Die Annotation @QuarkusTest gibt vor, die Anwendung zu starten, bevor die Tests ausgef\u00fchrt werden. Ansonsten ist der Code f\u00fcr alle Entwickler vertraut. <\/p>\n<p><\/p>\n<h3 id=\"platformo-zavisimoe-prilozhenie\">Plattformabh\u00e4ngige Anwendung<\/h3>\n<p><\/p>\n<p>Da Quarkus eng mit GraalVM integriert ist, kann nat\u00fcrlich plattformabh\u00e4ngiger Code generiert werden. Dazu muss GraalVM installiert und die Umgebungsvariable GRAALVM_HOME festgelegt werden. Dann <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/quarkusio\/quarkus-quickstarts\/blob\/fae88eaab10ed4d68ac44e0b8b7416e631b8a6f9\/getting-started-knative\/pom.xml#L105\">muss ein Profil f\u00fcr den Build definiert werden<\/a><\/noindex> und beim Bauen der Anwendung angegeben werden:<\/p>\n<p><\/p>\n<pre><code class=\"java\">mvn package -Pnative<\/code><\/pre>\n<p><\/p>\n<p>Interessanterweise kann die generierte Anwendung getestet werden. Das ist wichtig, da die Ausf\u00fchrung von \"native\" Code von der Ausf\u00fchrung auf der JVM abweichen kann. Die Annotation @SubstrateTest startet plattformabh\u00e4ngigen Code der Anwendung. Die Wiederverwendung des vorhandenen Testcodes kann durch Vererbung erfolgen, sodass der Code f\u00fcr das Testen der plattformabh\u00e4ngigen Anwendung so aussehen wird:<\/p>\n<p><\/p>\n<pre><code class=\"java\">@SubstrateTest\npublic class GreetingResourceIT extends GreetingResourceTest {\n\n}<\/code><\/pre>\n<p><\/p>\n<p>Das generierte Image kann in Docker verpackt und in Kubernetes oder OpenShift ausgef\u00fchrt werden, wie ausf\u00fchrlich beschrieben in <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/guides\/kubernetes-guide\">Anleitung<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"instrumentariy\">Werkzeugset<\/h3>\n<p><\/p>\n<p>Das Quarkus-Framework kann mit Maven und Gradle verwendet werden. Maven wird vollst\u00e4ndig unterst\u00fctzt, im Gegensatz zu Gradle. Leider unterst\u00fctzt Gradle momentan nicht die Generierung eines leeren Projekts, es gibt auf der Website ein ausf\u00fchrliches <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/guides\/gradle-tooling.html\">Tutorial<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"rasshireniya\">Erweiterungen<\/h3>\n<p><\/p>\n<p>Quarkus ist ein erweiterbares Framework. Momentan existieren etwa <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/extensions\/\">40 Erweiterungen<\/a><\/noindex>, die verschiedene Funktionalit\u00e4ten hinzuf\u00fcgen \u2013 von der Unterst\u00fctzung des <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/extensions\/#migration\">Spring DI Containers<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/extensions\/#integration\">Apache Camel<\/a><\/noindex> bis zur Protokollierung und Ver\u00f6ffentlichung von Metriken f\u00fcr aktive Dienste. Es gibt bereits eine Erweiterung zur Unterst\u00fctzung der Anwendungsentwicklung in Kotlin, zus\u00e4tzlich zu Java. <\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">Fazit<\/h2>\n<p><\/p>\n<p>Meiner Meinung nach liegt Quarkus absolut im Trend. Die Entwicklung von Backend-Code wird immer einfacher, und dieses Framework erleichtert und beschleunigt die Entwicklung von Diensten noch weiter, indem es native Unterst\u00fctzung f\u00fcr Docker und Kubernetes bietet. Ein riesiger Vorteil ist die eingebaute Unterst\u00fctzung von GraalVM und die Generierung plattformspezifischer Images, was es erm\u00f6glicht, Dienste wirklich schnell zu starten und wenig Speicherplatz zu beanspruchen. Das ist heutzutage besonders wichtig, da Mikrodienste und serverlose Architekturen im Trend liegen.<\/p>\n<p><\/p>\n<p>Die offizielle Website \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/quarkus.io\/\">quarkus.io<\/a><\/noindex>. Beispiele f\u00fcr Projekte f\u00fcr einen schnellen Start sind bereits verf\u00fcgbar auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/quarkusio\/quarkus-quickstarts\">GitHub<\/a><\/noindex>.\n<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/haulmont\/blog\/443242\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u043c\u0430\u0440\u0442\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f RedHat (\u0432\u0441\u043a\u043e\u0440\u0435 \u2014 IBM) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u2014 Quarkus. \u041f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u044d\u0442\u043e\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 GraalVM \u0438 OpenJDK HotSpot \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f Kubernetes. \u0421\u0442\u0435\u043a Quarkus \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f: JPA\/Hibernate, JAX-RS\/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u0426\u0435\u043b\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c Java \u043b\u0438\u0434\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 Kubernetes [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":74794,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-74793","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u043c\u0430\u0440\u0442\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f RedHat (\u0432\u0441\u043a\u043e\u0440\u0435 \u2014 IBM) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u2014 Quarkus. \u041f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u044d\u0442\u043e\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 GraalVM \u0438 OpenJDK HotSpot \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f Kubernetes. \u0421\u0442\u0435\u043a Quarkus \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f: JPA\/Hibernate, JAX-RS\/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u0426\u0435\u043b\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c Java \u043b\u0438\u0434\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 Kubernetes\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Quarkus \u2014 \u0441\u0432\u0435\u0440\u0445\u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0441\u0443\u0431\u0430\u0442\u043e\u043c\u043d\u0430\u044f Java. \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u043c\u0430\u0440\u0442\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f RedHat (\u0432\u0441\u043a\u043e\u0440\u0435 \u2014 IBM) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u2014 Quarkus. \u041f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u044d\u0442\u043e\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 GraalVM \u0438 OpenJDK HotSpot \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f Kubernetes. \u0421\u0442\u0435\u043a Quarkus \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f: JPA\/Hibernate, JAX-RS\/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u0426\u0435\u043b\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c Java \u043b\u0438\u0434\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 Kubernetes\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-20T17:42:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-20T17:42:19+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Quarkus \u2013 \u00dcberschall-subatomare Java. Kurzer \u00dcberblick \u00fcber das Framework | ProHoster","description":"Einf\u00fchrung Am siebten M\u00e4rz stellte die Firma RedHat (bald IBM) ein neues Framework namens Quarkus vor. Laut den Entwicklern basiert dieses Framework auf GraalVM und OpenJDK HotSpot und ist f\u00fcr Kubernetes konzipiert. Der Quarkus-Stack umfasst: JPA\/Hibernate, JAX-RS\/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus und andere. Das Ziel ist es, Java zur f\u00fchrenden Plattform f\u00fcr Deployments in Kubernetes zu machen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Quarkus \u2014 \u0441\u0432\u0435\u0440\u0445\u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u0441\u0443\u0431\u0430\u0442\u043e\u043c\u043d\u0430\u044f Java. \u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u0435\u0434\u044c\u043c\u043e\u0433\u043e \u043c\u0430\u0440\u0442\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f RedHat (\u0432\u0441\u043a\u043e\u0440\u0435 \u2014 IBM) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u2014 Quarkus. \u041f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u044d\u0442\u043e\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 GraalVM \u0438 OpenJDK HotSpot \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f Kubernetes. \u0421\u0442\u0435\u043a Quarkus \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f: JPA\/Hibernate, JAX-RS\/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u0426\u0435\u043b\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c Java \u043b\u0438\u0434\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 Kubernetes","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/quarkus-sverhzvukovaya-subatomnaya-java-kratkij-obzor-frejmvorka","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-20T17:42:19+00:00","article:modified_time":"2020-03-20T17:42:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74793","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:07:28","updated":"2022-09-30 18:17:47"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/74793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=74793"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/74793\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/74794"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=74793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=74793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=74793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}