[{"data":1,"prerenderedAt":378},["ShallowReactive",2],{"blog-post-blog_de-quarkus-und-cloud-native-java":3},{"id":4,"title":5,"body":6,"cover":364,"date":365,"description":366,"draft":367,"extension":368,"meta":369,"navigation":201,"path":370,"seo":371,"stem":372,"tags":373,"__hash__":377},"blog_de\u002Fde\u002Fblog\u002Fquarkus-und-cloud-native-java.md","Quarkus und die Zukunft von Cloud-Native Java",{"type":7,"value":8,"toc":359},"minimark",[9,18,23,34,73,76,298,302,309,316,319,348,352,355],[10,11,12,13,17],"p",{},"Traditionelle Java-Anwendungen starten in mehreren Sekunden und belegen hunderte Megabyte Arbeitsspeicher -- Eigenschaften, die im Zeitalter von Container-Orchestrierung und Serverless-Architekturen zum Nachteil werden. ",[14,15,16],"strong",{},"Quarkus"," adressiert genau diese Problematik. Mit der aktuellen Version 3.20 und der kontinuierlichen Unterstützung durch Red Hat hat sich das Framework als eine der führenden Lösungen für Cloud-Native Java und Kotlin etabliert.",[19,20,22],"h2",{"id":21},"was-macht-quarkus-besonders","Was macht Quarkus besonders?",[10,24,25,26,29,30,33],{},"Quarkus ist als ",[14,27,28],{},"Container-first"," und ",[14,31,32],{},"Kubernetes-natives"," Framework konzipiert. Im Gegensatz zu klassischen Java-Frameworks verlagert Quarkus einen Großteil der Initialisierung von der Laufzeit in die Build-Phase. Die wichtigsten Merkmale:",[35,36,37,44,50,56,62],"ul",{},[38,39,40,43],"li",{},[14,41,42],{},"GraalVM Native Compilation",": Kompilierung zu nativen Executables mit Start in Millisekunden",[38,45,46,49],{},[14,47,48],{},"Dev Services",": Automatisches Starten von Datenbanken und Diensten im Entwicklungsmodus",[38,51,52,55],{},[14,53,54],{},"Continuous Testing",": Tests laufen automatisch bei Code-Änderungen im Hintergrund",[38,57,58,61],{},[14,59,60],{},"Reactive und Imperative",": Einheitliches Programmiermodell für beide Paradigmen",[38,63,64,67,68,72],{},[14,65,66],{},"Kotlin-Unterstützung",": Volle Coroutine-Integration mit ",[69,70,71],"code",{},"suspend","-Funktionen in REST-Endpunkten",[10,74,75],{},"Ein reaktiver REST-Endpunkt in Kotlin mit Quarkus:",[77,78,83],"pre",{"className":79,"code":80,"language":81,"meta":82,"style":82},"language-kotlin shiki shiki-themes github-light github-dark","@Path(\"\u002Fproducts\")\n@Produces(MediaType.APPLICATION_JSON)\nclass ProductResource(\n    private val repository: ProductRepository\n) {\n    @GET\n    suspend fun listAll(): List\u003CProduct> =\n        repository.findAll()\n\n    @GET\n    @Path(\"\u002F{id}\")\n    suspend fun findById(@PathParam(\"id\") id: Long): Product =\n        repository.findById(id)\n            ?: throw NotFoundException(\"Product $id not found\")\n}\n","kotlin","",[69,84,85,105,114,127,142,148,154,184,196,203,208,221,255,266,292],{"__ignoreMap":82},[86,87,90,94,98,102],"span",{"class":88,"line":89},"line",1,[86,91,93],{"class":92},"sScJk","@Path",[86,95,97],{"class":96},"sVt8B","(",[86,99,101],{"class":100},"sZZnC","\"\u002Fproducts\"",[86,103,104],{"class":96},")\n",[86,106,108,111],{"class":88,"line":107},2,[86,109,110],{"class":92},"@Produces",[86,112,113],{"class":96},"(MediaType.APPLICATION_JSON)\n",[86,115,117,121,124],{"class":88,"line":116},3,[86,118,120],{"class":119},"szBVR","class",[86,122,123],{"class":92}," ProductResource",[86,125,126],{"class":96},"(\n",[86,128,130,133,136,139],{"class":88,"line":129},4,[86,131,132],{"class":119},"    private",[86,134,135],{"class":119}," val",[86,137,138],{"class":96}," repository: ",[86,140,141],{"class":92},"ProductRepository\n",[86,143,145],{"class":88,"line":144},5,[86,146,147],{"class":96},") {\n",[86,149,151],{"class":88,"line":150},6,[86,152,153],{"class":92},"    @GET\n",[86,155,157,160,163,166,169,172,175,178,181],{"class":88,"line":156},7,[86,158,159],{"class":119},"    suspend",[86,161,162],{"class":119}," fun",[86,164,165],{"class":92}," listAll",[86,167,168],{"class":96},"(): ",[86,170,171],{"class":92},"List",[86,173,174],{"class":96},"\u003C",[86,176,177],{"class":92},"Product",[86,179,180],{"class":96},"> ",[86,182,183],{"class":119},"=\n",[86,185,187,190,193],{"class":88,"line":186},8,[86,188,189],{"class":96},"        repository.",[86,191,192],{"class":92},"findAll",[86,194,195],{"class":96},"()\n",[86,197,199],{"class":88,"line":198},9,[86,200,202],{"emptyLinePlaceholder":201},true,"\n",[86,204,206],{"class":88,"line":205},10,[86,207,153],{"class":92},[86,209,211,214,216,219],{"class":88,"line":210},11,[86,212,213],{"class":92},"    @Path",[86,215,97],{"class":96},[86,217,218],{"class":100},"\"\u002F{id}\"",[86,220,104],{"class":96},[86,222,224,226,228,231,233,236,238,241,244,247,250,252],{"class":88,"line":223},12,[86,225,159],{"class":119},[86,227,162],{"class":119},[86,229,230],{"class":92}," findById",[86,232,97],{"class":96},[86,234,235],{"class":92},"@PathParam",[86,237,97],{"class":96},[86,239,240],{"class":100},"\"id\"",[86,242,243],{"class":96},") id: ",[86,245,246],{"class":92},"Long",[86,248,249],{"class":96},"): ",[86,251,177],{"class":92},[86,253,254],{"class":119}," =\n",[86,256,258,260,263],{"class":88,"line":257},13,[86,259,189],{"class":96},[86,261,262],{"class":92},"findById",[86,264,265],{"class":96},"(id)\n",[86,267,269,272,275,278,280,283,287,290],{"class":88,"line":268},14,[86,270,271],{"class":96},"            ?: ",[86,273,274],{"class":119},"throw",[86,276,277],{"class":92}," NotFoundException",[86,279,97],{"class":96},[86,281,282],{"class":100},"\"Product ",[86,284,286],{"class":285},"sj4cs","$id",[86,288,289],{"class":100}," not found\"",[86,291,104],{"class":96},[86,293,295],{"class":88,"line":294},15,[86,296,297],{"class":96},"}\n",[19,299,301],{"id":300},"native-compilation-und-kubernetes-integration","Native Compilation und Kubernetes-Integration",[10,303,304,305,308],{},"Die ",[14,306,307],{},"GraalVM Ahead-of-Time-Compilation"," transformiert Java-Bytecode in plattformspezifischen Maschinencode. Das Ergebnis: Startzeiten im einstelligen Millisekundenbereich und ein Speicherverbrauch, der um den Faktor 5 bis 10 unter dem einer klassischen JVM-Anwendung liegt.",[10,310,311],{},[312,313],"img",{"alt":314,"src":315},"Quarkus Performance-Vergleich: Startzeit und Speicherverbrauch","\u002Fimg\u002Fblog\u002Fquarkus-performance.png",[10,317,318],{},"Die Kubernetes-Integration geht über einfaches Deployment hinaus:",[35,320,321,327,336,342],{},[38,322,323,326],{},[14,324,325],{},"Automatische Manifest-Generierung"," für Kubernetes und OpenShift",[38,328,329,29,332,335],{},[14,330,331],{},"Health Checks",[14,333,334],{},"Metrics"," sind standardmäßig integriert",[38,337,338,341],{},[14,339,340],{},"Reflexionsfreie Jackson-Serialisierung"," in Quarkus 3.20 für optimierte Native Builds",[38,343,344,347],{},[14,345,346],{},"Eclipse MicroProfile","-Kompatibilität für standardisierte Cloud-Native-Patterns",[19,349,351],{"id":350},"warum-das-wichtig-ist","Warum das wichtig ist",[10,353,354],{},"Java dominiert weiterhin die Enterprise-Entwicklung, steht aber im Cloud-Native-Umfeld in direkter Konkurrenz zu Go und Rust. Quarkus schließt die Lücke zwischen dem Java-Ökosystem mit seinen Millionen von Entwicklern und den Anforderungen moderner Container-Plattformen. Die native Compilation macht Java-Anwendungen konkurrenzfähig in Szenarien, die bisher anderen Sprachen vorbehalten waren -- von Serverless-Funktionen bis hin zu ressourcenoptimierten Microservices.",[356,357,358],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":82,"searchDepth":107,"depth":107,"links":360},[361,362,363],{"id":21,"depth":107,"text":22},{"id":300,"depth":107,"text":301},{"id":350,"depth":107,"text":351},"\u002Fimg\u002Fblog\u002Fquarkus-cover.jpg","2026-03-14","Quarkus etabliert sich als führendes Framework für Cloud-Native Java und Kotlin mit nativer GraalVM-Compilation und Kubernetes-Integration.",false,"md",{},"\u002Fde\u002Fblog\u002Fquarkus-und-cloud-native-java",{"title":5,"description":366},"de\u002Fblog\u002Fquarkus-und-cloud-native-java",[16,374,375,376],"Java","Kotlin","Cloud-Native","k_5W4xYRFcQ6rsKpEYNSckXcAjUU3XKIN1qxG444T0A",1775892934269]