ááá¯ááŸá
áºááœáẠáá»áœááºá¯ááºááá¯á·ááẠááœááºááááºáá¬á¡áááºážá¡áá»ááºážáá»á¬ážááᯠá¡áá±ážá¡áááºáá¬ážá áá®ááœááºáááºáá®ážááẠá
á®á
ááºáá¬ážáááºá
Java ááŸáá·áº JVM ááá¯á·ááẠá¡ááœááºáá±áááºážá
á¬ážáá±áá±ážáá±á¬áºáááºáž serverless áááºážááá¬áá»á¬ážááŸáá·áº cloud-native microservices áá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºáá±á¬á¡áá«ááœááºá Java ááŸáá·áº á¡ááŒá¬ážáá±á¬ JVM áá¬áá¬á
áá¬ážáá»á¬ážááẠmemory space áá»á¬ážááœááºážá load áá¯ááºááẠááŸá±ážááœá±ážááœááºážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠá¡áá¯á¶ážááŒá¯ááŸá¯ áááºážáá«ážáá¬ááŒá®ážá áááºáááºážááá¯áá±á¬ ááœááºááááºáá¬áá»á¬ážááŸáá·áº á¡áá¯á¶ážááŒá¯ááẠáááá·áºáá±á¬áºáá«á áá¶áá±á¬ááºážá
áœá¬ááŒáá·áºá á€á¡ááŒá±á¡áá±ááẠQuarkus ááŒá±á¬áá·áº ááᯠá
áááºááŒá±á¬ááºážáá²áá±ááŒá®ááŒá
áºáááºá
Superfast subatomic Java ááẠá¡ááá·áºá¡áá áºááá¯á· áá±á¬ááºááŸáááœá¬ážáá«ááŒá®á
áá¯ááºáá±ááŸá¯ áá áá¯á áááºááœá¬á¡áá¯áẠá áááŸáá·áº á¡á¶á·ááŒááœáẠdeveloper 42 áᯠ- áááºážá¡á¬ážáá¯á¶ážáááááºááẠ8 áá¯ááŸá
Ạááá¯áááºáá¬áááœáẠáá¯ááºáá±áá²á·áááº
ááá±á·ááœáẠQuarkus ááẠáááŸááááŒá
áºááá¯á¡ááºáá±á¬ ááŸáá·áº áá¬ááºááŒá¯ááŸá¯ááá¯ááºáᬠáááá¯ááááºážáááºážáá¯á¶á
á¶áá»á¬ážááᯠáá
áºáá¯áááºážáá±á¬ reactive core ááá¯á· áááºááá¯á·áá±á«ááºážá
ááºááŒá±á¬ááºážááŒááá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáááá¯ááºážá¡áá»ááºážááŒáá·áº á
áááºááŒá®áž Quarkus á áá¬ááºááŒá¯ááŸá¯ core dualism ááẠá¡áááºá¡áá¬ááŸáá·áº áááºááá¯á·áááºáá¯á¶á¡ááŒá±á¬ááºáž á¡áá±ážá
áááºááᯠáá±á·áá¬áá«áááºá
ááááá¯á¶áž áááá¯ááºážááᯠáá±á·áá¬ááŒáá·áºáá¡á±á¬ááºá
áá»á±á¬ááºážáá»á¬ážááŸáá·áº ááœááºááááºáá¬áá»á¬áž
áá¬ážááŸááºáž 8u131 ááŸá áááºá Java ááẠergonomics áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠááŒáŸáá·áºáááºááŸá¯áá»á¬ážááŒá±á¬áá·áº ááœááºááááºáá¬áá»á¬ážááᯠá¡áááºážááŸáá·áºá¡áá»á¬áž áá¶á·ááá¯ážáá±ážáá¬áááºá á¡áá°ážáááŒáá·áºá JVM ááẠááá¯á¡áá« áááºážááẠáááá¯áááºáᬠcore áááºáá»áŸáááºáááºáá±áááºááᯠááááŸáááŒá®áž thread poolsâáá¯á¶ááŸááºá¡á¬ážááŒáá·áº fork/join poolsâááŸáá·áºá¡áá®á áá¯ááºáá«áááºá áá«ááá±á¬ááºážáááºá áá«áá±ááá·áº HTTP áá¬áá¬ááœá±ááá¯áá¯á¶ážááŒá®áž Tomcatá Jetty á áááºááá¯á·ááŸá¬ á¡áá¯ááºáá¯ááºáá²á· ááá¬ážááá¯ážáá»áááºá¡ááºááºáá áºáá¯ááá¯á· ááá¯ááŒáá«á áá¯á·á ááááºá¡áá±ááŒáá·áºá á€á¡ááá®áá±ážááŸááºážááẠáá®ážááŒá¬ážá á¬ááœá²áá áºáá¯á á®ááᯠáá±á¬ááºážááá¯áááºááŒá áºááŒá®ážá á¥ááá¬á áá±áá¬áá±á·á áºá ááá¯ááºáá»á¬áž ááá¯á·ááá¯áẠá¡ááŒá¬ážáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºáá±á¬ááºááá·áºá¡áá«ááœáẠI/O áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá á±á¬áá·áºááá¯ááºážáá±áá»áááºááœáẠáááºážá¡á¬áž ááááºááá¯á·ááẠááœáá·áºááŒá¯áááºááŒá áºáááºá ááá¯ááá¯áááºááŸá¬á ááá¯áá²á·ááá¯á·áá±á¬ á¡ááá®áá±ážááŸááºážáá áºáá¯á á¡ááœááºá¡á á¬ážááẠáááŸáááá¯ááºáá±á¬ cores á¡áá±á¡ááœááºáá±á«áºááœááºáá°áááºááŒááºážáááŸááá±á¬áºáááºáž áá áºááŒáá¯ááºáááºáááºáž áá±á¬ááºážááá¯ááŸá¯á¡áá±á¡ááœááºáá±á«áºááœáẠáá°áááºáá«áááºá ááá¯á·á¡ááŒááºá ááá¯ááá¯áááºááŸá¬ cores á¡áá±á¡ááœááºááá¯ááºáᬠKubernetes ááŸá ááœá²áááºážáá»á¬áž ááá¯á·ááá¯áẠááá·áºáááºáá»ááºáá»á¬ážááẠá€áá±áá¬ááœáẠáá»á¬ážá áœá¬á¡áá±á¬ááºá¡áá°ááŒá áºáááá·áºáááºááá¯ááºááŒá±á¬ááºážááŸáá·áº áááºážááá á¹á ááẠáá±á¬ááºáá¯á¶ážááœáẠááááºááá¯á·ááŒááºážááœáẠá¡áá¯á¶ážáááºááœá¬ážáááºááŒá áºáááºá
ááŸááºáá¬ááºáá¯ááºáááºážááŒááºážá
Threads áá»á¬ážááẠMemory ááŒá áºáááºá ááœááºááááºáá¬á¡ááœááºážááŸááºáá¬ááºááá·áºáááºáá»ááºáá»á¬ážááẠpanacea ááá¯ááºáá«á á¡ááá®áá±ážááŸááºážáá»á¬ážááŸáá·áº ááá¯ááºážáá¶áá«ááºáá»á¬ážááᯠááá¯ážááŒáŸáá·áºááá¯ááºáá¯á¶ááŒáá·áº áááŒá¬áá® ááá¯á·ááá¯áẠáá±á¬ááºááá¯ááºážááœáẠáááºááẠáá°ážááŒá±á¬ááºážááŸá¯á¡ááŒáááºáá±á¡ááœáẠá¡áá±ážáá«áá±á¬ ááá¯ážááŒáá·áºáá¬áááºááŸáá·áº ááááºá¡áá±ááŒáá·áº á áœááºážáá±á¬ááºááẠáá»áááºážááœá¬ážáááºááŒá áºáááºá ááá¯á·á¡ááŒááºá á¡áááºá ááá·áºá¡ááá®áá±ážááŸááºážááẠááá¬ážááá¯ážáá» microservice frameworks áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áááºá ááá¯á·ááá¯áẠdatabase ááŸáá·áºáá»áááºáááºáááºá ááá¯á·ááá¯áẠcaching ááá¯á¡áá¯á¶ážááŒá¯ááẠááá¯á·ááá¯áẠmemory up ááá¯á¡áá¯á¶ážááŒá¯áá«áá áááºááẠJVM á¡ááœááºážááá¯á·ááŒáá·áºááŸá¯áááºááŸáá·áºáááºážááá¯ááááºáá² memory ááá¯áááºááá¯á·á á®áá¶ááá·áºááœá²áááºááá¯áááá¬áááºááŸá¬ážáá±á¬ tool áá áºáá¯ááá¯á¡ááºáá«áááºá JVM ááá¯ááºááá¯áẠ(á¥ááá¬á XX:+UseCGroupMemoryLimitForHeap)á Java 9 ááŸá áááºá JVM ááẠcgroups áá»á¬ážááá¯áááºáá¶áᬠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá¡á±á¬áẠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá¡á±á¬áẠáááºáá°áá²á·ááŒá®áž memory ááᯠááááºážáááºážááŒááºážááŸáá·áº á á®áá¶ááá·áºááœá²ááŒááºážááŸá¬ ááŸá¯ááºááœá±ážáá±á¬ááá á¹á áá áºáá¯á¡ááŒá Ạáá»ááºááŸááá±áá²ááŒá áºáááºá
ááœá²áááºážáá»á¬ážááŸáá·áº ááá·áºáááºáá»ááºáá»á¬áž
Java 11 ááẠCPU ááœá²áááºáž (PreferContainerQuotaForCPUCount áá²á·ááá¯á·) á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠááááºáááºáá±ážáá²á·áááºá Kubernetes ááẠááá·áºáááºáá»ááºáá»á¬ážááŸáá·áº ááœá²áááºážáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯áá±ážáá«áááºá áá¯ááºáá²á·á áá«ááœá±á¡á¬ážáá¯á¶ážáᬠá¡áááá¹áá¬ááºááŸááá«áááºá áá«áá±ááá·áº á¡ááá®áá±ážááŸááºážá ááœá²áááºážááœá²áááºážááᯠáááºááŒá®ážáá»á±á¬áºááœááºáá±áááºááá¯áááºá á¡á
ááºá¡áᬠJava á¡ááá®áá±ážááŸááºážááœá±ááá¯áá² - cores á¡áá±á¡ááœááºáá²á· áá
áºáá¯á
á®á¡ááœáẠáá®ážááŒá¬áž thread áá
áºáá¯á
á®ááœá²áá±ááŸá¯áá²á·á¡áá° á¡ááœááºá¡á
á¬ážáá²á· á¡áá¯á¶ážáááºáá«áááºá áá±á¬ááºážááá¯áá¬á áá«ááœá±á¡á¬ážáá¯á¶ážááŸá¬ á¡áááá¹áá¬ááºáááºážáááºážááŸááááºá
ááá¯á·á¡ááŒááºá áááºááẠKubernetes á¡ááŒá±áá¶ááááºáá±á¬ááºážá ááœá²áááºážááŸáá·áº ááá·áºáááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á ááŒá¿áá¬ááẠáá°á·áá¬áá¬áá° ááŒá±ááŸááºážáááºááá¯ááºáá«á áá°áááºážááŒá¿áá¬ááᯠááŒá±ááŸááºážááẠááá¯á·ááá¯áẠááœá±ááá¯áá¯á¶ážá
áœá²ááŒááºážá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡áááºážá¡ááŒá
áºáá»á¬ážááᯠááá¯ááá¯áá¯á¶ážá
áœá²áá«áááºá á¡áá»á¬ážáá°ááŸá¬ á¡áá»á¬ážáá°ááŸá¬ cloud ááœáẠhigh-load system ááŒá
áºáá«áá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŸááºáááẠááá¯á¡ááºáááºááẠá¡áááºážá¡ááŒá
áºáá»á¬ážááᯠááá¯ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŸá¬ áá±áá»á¬áá«áááºá
áá«ááœá±á¡á¬ážáá¯á¶ážáá²á· áá¬áá¯ááºáááá²á
ááá¯ážááá¯ážááŸááºážááŸááºážááŒá±á¬ááá»áŸááºá Netty áá²á·ááá¯á· á¡áááºáááŒááºááŒá
áºá
á±ááŒá®áž ááááºááá¯á·ááŒááºážááá¯ááºáá±á¬ I/O á
á¬ááŒáá·áºááá¯ááºáá»á¬ážááŸáá·áº áá°áá±á¬ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á
ááááºááá¯á·ááŒááºážááá¯ááºáá±á¬ I/O ááŒáá·áºá cores á¡áá±á¡ááœááºááẠááŒáá¯ááºáá°áá¯ááºáá±á¬ááºááá¯ááºááá·áº I/O thread áá»á¬ážá á¡áá±á¡ááœááºááᯠáá¯á¶ážááŒááºáá±ážáá±á¬ááŒá±á¬áá·áº á¡ááá ááá·áºáááºáá±á¬ááºáá áºáᯠááŒá áºáá¬áááºá ááŸááºáááºá áœá¬á¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á áááºážááẠááá·áºá¡á¬áž cores áá»á¬ážááŒá¬ážáááºá¡á¬áž áááá±á¬ááºá áœá¬ááŒáá·áºáá±ááá¯ááºááŒá®áž á¡áááºážá¡ááŒá áºáááºážáááºážááŒáá·áº ááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬á¡áá¯ááºáá»á¬ážááᯠááá¯ááºááœááºááá¯ááºá á±áááºááŒá áºáááºá
á¡á²áá« áááºááá¯áá²á
ááá¯ááºáá«á á¡ááŒá¬ážáá áºáá¯ááŸááá±ážáááºá Reactive programming ááẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá áœá¬á¡áá¯á¶ážááŒá¯ááẠáá°áá®áá±ážáá±á¬áºáááºáž á á»á±ážááŸá¯ááºážááŒáá·áºáááºáž áááŸááá«áááºá á¡áá°ážáááŒáá·áºá ááááºááá¯á·ááŒááºážáááŒá¯ááá·áºá¡ááŒá±áá¶áá°áá»á¬ážááŸáá·áºá¡áá® áá¯ááºááᯠááŒááºáááºáá±ážáá¬ážááááºááŒá áºááŒá®áž I/O ááá¯ááºážáá»á¬ážááᯠááááºááá¯á·ááŒááºážá០ááŸá±á¬ááºááŒááºáá«á áááºážááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á áá¯á¶ážáááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ áá¯á¶á á¶áá áºáá¯ááŒá áºáááºá á€áá±áá¬ááœáẠá¡áá¯á¶ážáááºáá±á¬ á á¬ááŒáá·áºááá¯ááºáá»á¬áž á¡áá»á¬ážá¡ááŒá¬ážááŸááá±á¬áºáááºáž áááºážááẠáá¯á¶ááŸááºááœá±ážáá±á«áºáá¯á¶ááœáẠá¡á áœááºážáá±á¬ááºááŒá±á¬ááºážáá²ááŸá¯áá áºáᯠááŒá áºáá±áá²ááŒá áºáááºá
ááááŠážá áœá¬á áááºááẠasynchronously á¡áá¯ááºáá¯ááºáá±á¬áá¯ááºááá¯áááºááá¯á·áá±ážááááºááá¯áá±á·áá¬áááºááá¯á¡ááºáááºá ááááºááá¯á·ááŒááºážáááŒá¯áá±á¬ I/O ááᯠáááºá áááºá¡áá¯á¶ážááŒá¯áááºááŸáá·áºáá áºááŒáá¯ááºáááºá áá±á¬ááºážááá¯áá»ááºáá áºáá¯á¡á¬áž áá¯á¶á·ááŒááºááŸá¯áá áºáá¯áááºáá¶áááŸáááá·áºá¡áá«ááœáẠááŒá áºáá±á«áºáá¬ááá·áºá¡áá¬áá»á¬ážááᯠááŒááºáá¬ážá áœá¬ áááºááŸááºááẠááá¯á¡ááºáááºá ááááºááá¯á·ááŒááºážááŸáá·áº á á±á¬áá·áºááá¯ááºážáá¯á¶ááŒáá·áº á¡áá¯ááºáááŒá áºáá±á¬á·áá«á áááºážá¡á á¬ážá áááºááẠáá¯ááºážáá±á«áºááá¯ááŸá¯áá»á¬ážááᯠáá»á±á¬áºááŒááºááá¯ááºáááºá áá¯á¶á·ááŒááºááŸá¯ áááá¯ááááºážáááºáž ááá¯á·ááá¯áẠáááºáá¯ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá áá«áá±ááá·áº áá«ááœá±á¡á¬ážáá¯á¶ážáá±á¬á· ááá¯ááºáá«áá°ážá- ááááºááá¯á·ááŒááºážááá¯ááºáá±á¬ I/O ááᯠá¡áá¯á¶ážááŒá¯áááºá áá±áá¬ááá¯ááºážááœáẠááááºááá¯á·ááŒááºážááá¯ááºáá±á¬ áá¬áá¬áá»á¬ážááŸáá·áº áá±á¬ááºáááºáá»á¬áž ááá¯á¡ááºáá«áááºá HTTP ááá á¹á ááœááºá á¡áá¬á¡á¬ážáá¯á¶ážááẠááá¯ážááŸááºážáá±á¬áºáááºáž áá±áá¬áá±á·á áºáá»á¬ážá ááá¯ááºá áá áºáá»á¬ážááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážá áœá¬áááºáž ááŸááá±ážáááºá
á á¯á á¯áá±á«ááºáž á¡áá¯á¶ážá០á¡áá¯á¶áž áá¬ááºááŒá¯ááŸá¯ááẠáááá±á¬ááºááŸá¯ á¡ááŒáá·áºáá¯á¶ážááŒá áºáá±á¬áºáááºážá ááá¯ááá¯á·áá±á¬ ááŒá±á¬ááºážáá²ááŸá¯ááẠáááºááœá±á·ááœáẠáááºážá á¬á¡ááœáẠáááºáá²ááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áºá reactive ááŸáá·áº imperative code ááá¯áá±á«ááºážá ááºááá¯ááºááŸá¯áááº-
- áá±á¬á·ááºáá²ááºá áá áºá áááºáá«á¡áá»á¬ážáá¯á¶ážáá±áá¬áá»á¬ážááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááá±á¬ááºá áœá¬á¡áá¯á¶ážááŒá¯áá«á
- áááºážááá»ááºááŸááá±á¬á¡ááá¯ááºážáá»á¬ážááœáẠááá¯ááá¯ááá¯ážááŸááºážáá±á¬áá¯á¶á á¶áá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá«á
Quarkus ááᯠááááºáááºááŒááºážá
ááááºáá±á¬á·á áá«á Quarkus áá²á· á¡ááŸá áºáá¬áááŒá áºááŒá®áž runtime áááºáááºážáá»ááºáá áºáá¯á¡ááœááºáž áá¬ááºááŒá¯ááŸá¯áá²á· áááŸááááŒá áºáá±á¬áºáááºááœá±ááᯠáá±á«ááºážá ááºááá¯á·áá«áá²á
Quarkus ááẠáá±á¬á·ááºáá²áá±ážáá¬ážáá°ááá¯áá°áá®ááẠá¡áá±á«áºááŸáá¯á¶á·ááŒááºááŸá¯áá±á¬ááºáá»á¬ážááŸáá·áº ááá¯ážáá»á²á·ááŸá¯áá»á¬ážáá»á¬ážá áœá¬áá«ááŸááá±á¬ Vert.x ááŸáá·áº Netty ááá¯á¡ááŒá±áá¶áá¬ážáááºá Quarkus ááẠHTTP microservices áá»á¬ážáá¬áá event-driven áááá¯áá¬áá»á¬ážááᯠáááºáá±á¬ááºáááºá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážáááºá áááºážá áá¬ááºááŒá¯ááŸá¯ááá±á¬ááá¬áááŒá±á¬áá·áº áááºážááẠá á¬ááá¯áá±ážááá¯á·ááŒááºážá áá áºáá»á¬áž (Apache Kafkaá AMQP á áááºááŒáá·áº) ááŸáá·áº á¡ááœááºáááá±á¬ááºá áœá¬ á¡áá¯ááºáá¯ááºáá«áááºá
ááŸáá·áºááœááºááŸá¬ imperative ááŸáá·áº reactive code ááŸá áºáá¯áá¯á¶ážá¡ááœáẠáá°áá®áá±á¬ áá¬ááºááŒá¯á¡ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯áááºážááŒá áºáááºá
Quarkus á áá«ááᯠááŒá±á¬ááºááŒá±á¬ááºá áœá¬ áá¯ááºáááºá imperative ááŸáá·áº reactive á¡ááŒá¬áž ááœá±ážáá»ááºááŸá¯ááŸá¬ áááºááŸá¬ážááẠ- ááŸá áºáá¯áá¯á¶ážá¡ááœáẠreactive kernel ááᯠá¡áá¯á¶ážááŒá¯áá«á áááºážááẠá¡ááŸááºáááẠáá°áá®áá±ážááá·áºá¡áá¬ááŸá¬ event-loop thread (aka IO thread) ááŸáááá·áº ááŒááºáááºážááœá¬ážáá±á¬ á¡áá¬á¡á¬ážáá¯á¶ážáá®ážáá«ážááᯠááŒááºáááºááŒá®áž ááááºááá¯á·ááŒááºážááá¯ááºáá±á¬ áá¯ááºááŒá áºáááºá ááá¯á·áá±á¬áº ááá·áºááœáẠááá¹áááẠREST ááá¯á·ááá¯áẠclient-side application áá»á¬ážááŸááá«á Quarkus ááœáẠáááŸááááŒá áºááá¯á¡ááºáá±á¬ áááá¯ááááºážáááºážáá¯á¶á á¶áá áºáᯠá¡ááá·áºááŸááá±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá Quarkus ááŸá HTTP áá¶á·ááá¯ážááŸá¯ááẠááááºááá¯á·ááŒááºážááá¯ááºáá±á¬ áá¬ááºááŒá¯á¡ááºáá»áẠ(Eclipse Vert.x ááŸáá·áº Netty) ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá¡áá±á«áº á¡ááŒá±áá¶áááºá ááá·áºá¡ááá®áá±ážááŸááºážááŸáááŸááá±á¬ HTTP áá±á¬ááºážááá¯áá»ááºá¡á¬ážáá¯á¶ážááᯠááŒá áºáááºááœááºážááẠ(IO Thread) ááŸáááá·áº áŠážá áœá¬ááŒááºáááºážááŒá®ážáá±á¬áẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááá·áºáá¯ááºáá¡á áááºá¡ááá¯ááºážááá¯á· áá±ážááá¯á·áááºá áŠážáááºáá¬áá±á«áº áá°áááºá áá±á¬ááºážááá¯ááŸá¯á á®áá¶ááá·áºááœá²ááŸá¯áá¯ááºááᯠáá®ážááŒá¬áž thread (á¡áá¯ááºááá¬ážáá»ááºáá»áŸááºáá¯áá±á«áºáá±á¬á servlets ááŸáá·áº Jax-RS áá»á¬ážááœááºá¡áá¯á¶ážááŒá¯áááº) ááá¯á·ááá¯áẠá¡áááºážá¡ááŒá ẠI/O thread (áá¯á¶á·ááŒááºááŸá¯áááºážááŒá±á¬ááºáž) ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
á á¬ááá¯áá±ážááá¯á·ááŒááºážá áá Ạáá»áááºáááºáá°áá»á¬ážááẠVert.x á¡ááºáá»ááºáááááºááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ ááááºááá¯á·ááŒááºážááá¯ááºáá±á¬ áááá¯ááºážááá·áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá ááá¯á·ááŒá±á¬áá·áºá áááºááẠá á¬ááá¯áá±ážááá¯á·ááŒááºáž á¡áááºáááºážáá±á¬á·ááºáá²á áá áºáá»á¬ážá០áááºáá±á·áá»áºáá»á¬ážááᯠáááá±á¬ááºá áœá¬ áá±ážááá¯á·ááŒááºážá áááºáá¶ááŒááºážááŸáá·áº áá¯ááºáá±á¬ááºááŒááºážááá¯á· ááŒá¯áá¯ááºááá¯ááºáááºá
á¡ááá¯áá« site ááá¯
Reactive Routes ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá Reactive SQL áá±á¬ááºáááºáá»á¬áž Reactive Messaging ááŒáá·áº Apache Kafka ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá Reactive Messaging ááŒáá·áº AMQP ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá Vertx API ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
ááá±á¬ááºáá¬áá
áºáá¯ááœáẠIDE áááá¯á¡ááºáá²á ááœááºááŒá°áᬠáááá¯á¡ááºáá² áá¯á¶á·ááŒááºááŸá¯ááá¯ááºáᬠáááá¯ááááºáá»á¬ážááᯠáááºáá±ážáááºá¡ááœááºáááºáž á¡áœááºááá¯ááºážáááºááœá±á·áááºáááºážá
á¬áá»á¬ážááᯠáááºáá®ážáá¬ážáá«áááºá áá®áááºáááºážá
á¬ááœá±ááᯠáááºááŸá¬ááœá±á·ááá¯ááºáá«áááºá
á¡áá¯á¶ážáááºáá±á¬á¡áááºážá¡ááŒá áºááœá±ááá¯
Quarkus á ááºážááŒáá·áºááẠá¡ááŒá±á¬ááºážáááºáž 4 áᯠ- Quarkus ááá±á¬áá»ááºáááºááá¯áẠ-
quarkus.io - GitHub ááŸá Quarkus ááá±á¬áá»ááº
github.com/quarkusio/quarkus - Quarkus ááá±á¬áá»áẠTwitter -
twitter.com/QuarkusIO - Quarkus ááá±á¬áá»áẠá
áá¬ážááŒá±á¬áááºáž -
quarkusio.zulipchat.com - Quarkus ááá±á¬áá»ááºááá¯áááºáá»á¬áž â
groups.google.com/forum/# !forum/quarkus-dev
á¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áºáááºážááŸá®ážá á±ááẠQuarkus ááœáẠáá®áá®ááá¯áááºáááºážá ᬠ10 áá¯
áááºááá¯ááºááŸá¬ áá°ááá¯á·ááŒá±á¬áááá¯áá«áá²á
áá±á«ááºážá ááºááᯠáá¬ážáááºáá°áá®áááºá Quarkus á ááŸá¯áá±á¬áá·áºá¡áá»áá¯ážáá»áá¯ážááŸáá·áº áááºážáá¡áá¯á¶ážááŒá¯ááŸá¯ááá°áá¬áá»á¬ážááᯠáá¯á¶ážá¡á¯ááºáá¬ážáá±á¬ áá®áá®ááá¯áááºáááºážá ᬠáá áá¯ááᯠááœá±ážáá»ááºáá¬ážáá«áááºá
1. Quarkus ááᯠááááºáááºááŒááºáž- Kubernetes á¡ááœáẠáá±á¬ááºáá»áá¯ážááẠJava Framework
Thomas Qvarnstrom ááŸáá·áº Jason Greene ááá¯á·ááŸ
Quarkus ááá±á¬áá»ááºá áááºááœááºáá»ááºááŸá¬ Kubernetes ááŸáá·áº serverless áááºáááºážáá»ááºá¡ááœáẠJava ááááºáá±á¬ááºážááᯠáááºáá®ážáááºááŸáá·áº áá¯á¶á·ááŒááºááŸá¯ááŸáá·áº áááŸááááŒá
áºááá¯á¡ááºáá±á¬ áááá¯ááááºážáááºážáá¯á¶á
á¶áá»á¬ážááᯠáá
áºáá¯áááºážáá±á¬ runtime áááºáááºážáá»ááºááá¯á· áá±á«ááºážá
ááºáááºááŒá
áºááŒá®áž developer áá»á¬ážááẠááŒáá·áºáá±áá¬ážáá±á¬ application architectures á¡áá»á¬ážá¡ááŒá¬ážááŒáá·áº áá¯ááºáá±á¬ááºááá·áºá¡áá« áááºážááá¯á·ááá»ááºážáááºáá¯á¶áá»á¬ážááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŒá±á¬ááºážáá²ááá¯ááºá
á±áááºááŒá
áºáááºá á¡á±á¬ááºáá±á¬áºááŒáá« ááááºáááºáá±á¬ááŒá±á¬ááœá²ááœáẠááá¯ááá¯áá±á·áá¬áá«á
2. Quarkus- á¡ááœááºááŒááºáá±á¬ Subatomic Java
By: Burr Sutter
DevNation Live á០á€áá®áá®ááá¯áááºáááºážá
á¬ááẠáá¯ááºáááºážáá¯á¶áž Java á¡ááºááºáá®áá±ážááŸááºážáá»á¬ážá APIsá microservices ááŸáá·áº Kubernetes/OpenShift áááºáááºážáá»ááºááŸá áá¬áá¬áá²á·áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááá¯áá±á¬ááºážá¡á±á¬ááºááŒá¯áá¯ááºááẠQuarkus ááá¯á¡áá¯á¶ážááŒá¯áá¯á¶ááᯠááá¯ááºááŒááŒá®áž áááºážááá¯á·ááᯠááá¯ááá¯áá±ážáááºá ááŒááºá
á±ááŒá®áž ááá¯ááá¯á¡ááá¯ááºážá¡áá¬áá
áºáá¯á¡áá áá¯ááºáá±á¬ááºááá¯ááºá
á±áááºá
3. Quarkus ááŸáá·áº GraalVM- Hibernate ááᯠá á°áá«á¡ááŒááºááŸá¯ááºážáá»á¬ážá¡áá á¡ááŸáááºááŒáŸáá·áºáᬠáááºážá¡á¬áž á¡ááºáááºááá¯ááºážá¡ááœááºá¡á á¬ážá¡áá áá»á¯á¶á·ááœá¬ážáááº
áá±ážáá¬ážáá°- Sanne Grinovero
áááºáááºááŸá¯á០Quarkus ááŒá
áºáá±á«áºáá¬áá¯á¶á áááºážááẠá¡áá¯ááºáá¯ááºáá¯á¶ááŸáá·áº áá°áááºáž GraalVM áá¯á¶áá»á¬ážááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬ Hibernate ORM áá²á·ááá¯á·áá±á¬ ááŸá¯ááºááœá±ážáá±á¬á
á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠáááºáá®ážááá¯ááºáá¯á¶ááá¯á·ááᯠáááºáá±á·áá¬ááá¯ááºáááºááŒá
áºáááºá
4. áá¬áá¬áá²á·á¡ááºááºáá®áá±ážááŸááºážáá»á¬áž ááœá¶á·ááŒáá¯ážááá¯ážáááºááẠáá±á·áá¬áá«á
áá±ážáá¬ážáá°- áá¬áááºáá°áá¬
á¡á±á¬ááºáá«áá®áá®ááá¯ááœáẠQuarkus ááᯠá¡áá¯á¶ážááŒá¯á ááá¯ážááŸááºážáá±á¬ Java á¡ááá®áá±ážááŸááºážááᯠáááºáá®ážááŒá®áž Knative ááœáẠáá¬áá¬áá²á·á¡ááºááºáá
áºáá¯á¡ááŒá
Ạá¡áá¯á¶ážáá»áá¯á¶ááᯠááŒááá¬ážáááºá
5. Quarkus- áá»á±á¬áºááœáŸááºá áœá¬ coding áá¯ááºáá«á
áá±ážáá¬ážáá°- Edson Yanaga
áááºáááááá¯á¶áž Quarkus ááá±á¬áá»ááºááᯠáááºáá®ážááẠáá®áá®ááá¯áááºážááœáŸááºáá
áºáá¯á Quarkus ááẠdeveloper áá»á¬ážá á¡áááºážááŸáá¯á¶ážááᯠá¡áááºááŒá±á¬áá·áºá¡ááá¯ááºáááŒá±á¬ááºáž áá¬ážáááºááá¯ááºá
á±áááºááŒá
áºáááºá
6. Java ááŸáá·áº containers - áááºážááá¯á·á á¡áá¬ááẠá¡áá°ááᜠááŒá áºáá¬áááº
Mark Little ááŸáá±ážáá¬ážáá²á·áááº
á€áááºááŒáá»ááºááẠJava ááááá¯ááºážááŒá±á¬ááºážááᯠááááºáááºááŒá®áž Quarkus ááẠJava áá¡áá¬ááẠá¡áááºááŒá±á¬áá·áºááŒá
áºáááºááᯠááŸááºážááŒáááºá
7. Quarkus- á¡ááœááºááŒááºáá±á¬ Subatomic Java
áá±ážáá¬ážáá°- Dimitris Andreadis
áá±á¬á·ááºáá²áá±ážáá¬ážáá°áá»á¬ážáá¶á០á¡ááá¡ááŸááºááŒá¯ááŸá¯áááŸááá²á·ááá·áº Quarkus á á¡á¬ážáá¬áá»ááºáá»á¬ážááᯠááŒá¯á¶áá¯á¶áá¯á¶ážáááºáá»ááº- ááá¯ážááŸááºážááŸá¯á á¡ááœááºááŒáá·áºáá¬ážáá±á¬ááŒááºááŸá¯ááºážáá»á¬ážá á¡áá±á¬ááºážáá¯á¶ážá
á¬ááŒáá·áºááá¯ááºáá»á¬ážááŸáá·áº á
á¶ááŸá¯ááºážáá»á¬ážá
8. Quarkus ááŸáá·áº subatomic áá¯á¶ážáá»á¶á áá áºáá»á¬áž
áá±ážáá¬ážáá°- Clement Escoffier
GraalVM ááŸáá·áº áá±á«ááºážá
ááºááŒááºážááŒáá·áº Quarkus ááẠá¡ááœááºááŒááºáááºáá±á¬ ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœá±á·á¡ááŒá¯á¶ááŸáá·áº subatomic runtime áááºáááºážáá»ááºááᯠáá±ážáá±á¬ááºáá«áááºá á
á¬áá±ážááá¬ááẠQuarkus ááá¯á¶á·ááŒááºááŸá¯áááºááŒááºážááŸáá·áº reactive ááŸáá·áº streaming á¡ááºááºáá®áá±ážááŸááºážáá»á¬ážááá¯áááºáá±á¬ááºáááºáááºááá¯á·á¡áá¯á¶ážááŒá¯ááááºááá¯ááŒá±á¬ááá¯áá¬ážáááºá
9. Quarkus ááŸáá·áº Eclipse MicroProfile ááœáẠáá»ááºááŒááºáá±á¬ á¡ááá®áá±ážááŸááºáž ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯
áá±ážáá¬ážáá°- John Clingan
Eclipse MicroProfile ááŸáá·áº Quarkus ááá¯á·ááᯠáá±á«ááºážá
ááºááŒááºážááŒáá·áºá developer áá»á¬ážááẠáá®áá®á
áá¹ááá·áº áááºááááºážá¡ááœááºáž ááœáŸáá·áºáááºááá¯ááºáá±á¬ á¡ááŒáá·áºá¡ááá«áááºááá·áº MicroProfile á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáááºáá®ážááá¯ááºáááºá Kubernetes ááááºáá±á¬ááºážááœáẠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠááœááºááááºáá¬áááºáá¬ážáá±á¬ MicroProfile á¡ááá®áá±ážááŸááºážááᯠáá¯ááºáá¯ááºáááºážááᯠáá®áá®ááá¯ááœáẠá¡áá±ážá
áááºáá±á¬áºááŒáá¬ážáááºá
10. Javaá "Turbo" áá¬ážááŸááºáž
áá±ážáá¬ážáá°- Marcus Biel
á
á¬áá±ážááá¬ááẠá¡áá°ážáááŒáá·áº áá¬áá¬áááŸááá±á¬áááºáááºážáá»ááºáá»á¬ážááœáẠá¡ááŸááºááááºá¡á±á¬ááºááŒááºááŸá¯áá»á¬ážáááŸáá
á±ááá·áº á¡ááœááºáá±ážáááºááŒá®áž á¡ááœááºááŒááºáááºáá±á¬ Java ááœááºááááºáá¬áá»á¬ážááᯠáááºáá®ážááẠá
á¬áá±ážáá°ááẠQuarkus ááá¯á¡áá¯á¶ážááŒá¯áá¯á¶ááᯠááŒááá¬ážáááºá
source: www.habr.com