เบงเบดเบ—เบตเบเบฒเบ™ Quarkus เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒ

เบ›เบตเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบปเบงเบ‚เปเป‰เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบขเปˆเบฒเบ‡เบˆเบดเบ‡เบˆเบฑเบ‡, Cloud-Native Java ะธ Kubernetes. เบเบฒเบ™เบชเบทเบšเบ•เปเปˆเบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบญเบš Quarkus, เปเบฅเป‰เบง เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ เบชเบธเบ” Habre. เบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™เบกเบทเป‰เบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเบ‚เบญเบ‡ "subatomic superfast Java" เปเบฅเบฐเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบชเบฑเบ™เบเบฒเบ—เบตเปˆ Quarkus เบ™เปเบฒเบกเบฒเปƒเบซเป‰เบงเบดเบชเบฒเบซเบฐเบเบดเบ”.

เบงเบดเบ—เบตเบเบฒเบ™ Quarkus เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒ

Java เปเบฅเบฐ JVM เบเบฑเบ‡เป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”, เปเบ•เปˆเป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบต serverless เปเบฅเบฐ microservices cloud-native, Java เปเบฅเบฐ JVM เบžเบฒเบชเบฒเบญเบทเปˆเบ™เป†เปเบกเปˆเบ™เปƒเบŠเป‰เบซเบ™เป‰เบญเบเบฅเบปเบ‡เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เปเบฅเบฐเป‚เบซเบผเบ”เบŠเป‰เบฒเป€เบเบตเบ™เป„เบ›, เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒ เบšเปเปˆเบ”เบตเบžเปเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบเบฑเบšเบžเบฒเบŠเบฐเบ™เบฐเบ—เบตเปˆเบกเบตเบญเบฒเบเบธเบชเบฑเป‰เบ™. เป‚เบŠเบเบ”เบต, เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ™เบตเป‰เป€เบฅเบตเปˆเบกเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเป‰เบญเบ™ Quarkus.

Superfast subatomic Java เป„เบ”เป‰เบšเบฑเบ™เบฅเบธเบฅเบฐเบ”เบฑเบšเปƒเบซเบกเปˆ!

42 เบชเบฐเบšเบฑเบš, 8 เป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบŠเบธเบกเบŠเบปเบ™เปเบฅเบฐ 177 เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบซเบ™เป‰เบฒเบญเบฑเบ”เบชเบฐเบˆเบฑเบ™ - เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบญเบเปƒเบ™เป€เบ”เบทเบญเบ™เบžเบฐเบˆเบดเบ 2019. Quarkus 1.0, เบเบฒเบ™เบ›เปˆเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เป€เบขเบฑเบ™เบซเบผเบฒเบเปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ” (เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™ เบ›เบฐเบเบฒเบ”).

เบกเบทเป‰โ€‹เบ™เบตเป‰โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบซเบฑเบ™โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™ Quarkus เบฅเบงเบกโ€‹เบ•เบปเบงโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เปเบฅเบฐ reactive เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบซเบผเบฑเบ reactive เบ”เบฝเบงโ€‹. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ›เบฐเบซเบงเบฑเบ”เบซเบเปเป‰เป† เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบซเป‰เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเปˆเบฒ Quarkus 'reactive dualism เปเบกเปˆเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเปเบ™เบงเปƒเบ”. Java- เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบ, เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป€เบซเบ”เบเบฒเบ™ ะธ serverless-functions - เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™, เบเป‰เบญเบ™เบงเปˆเบฒเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบงเบปเป‰เบฒเบงเปˆเบฒ, เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เปƒเบ™เบกเบทเป‰เบ™เบตเป‰. เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰, เบเบฒเบ™เบชเป‰เบฒเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ cloud-centric เป„เบ”เป‰เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰เบซเบผเบฒเบ, เปเบ•เปˆเบšเบฑเบ™เบซเบฒเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ - เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ Java. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบ, เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบญเบฑเบ™เบฎเบตเบšเบ”เปˆเบงเบ™เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบฅเบฐเบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบชเบฐเบ”เบงเบเปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบชเบธเบ. Java เป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบซเบผเบฒเบเบขเปˆเบฒเบ‡เปƒเบ™เบŠเบธเบกเบ›เบตเบกเปเปˆเป†เบกเบฒเบ™เบตเป‰, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ ergonomics เบชเปเบฒเบฅเบฑเบšเบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเปเบฅเบฐเบญเบทเปˆเบ™เป†. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เปƒเบซเป‰ Java เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบ–เบฑเบ‡เปเบกเปˆเบ™เบเบฑเบ‡เบ—เป‰เบฒเบ—เบฒเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบšเบฒเบ‡เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡ Java, เป€เบŠเบดเปˆเบ‡เบกเบตเบ„เบงเบฒเบกเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เบฎเบฑเบ”เบเบธเบก.

เบเปˆเบญเบ™เบญเบทเปˆเบ™, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”.

เบงเบดเบ—เบตเบเบฒเบ™ Quarkus เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒ

เบชเบฒเบเบ™เป‰เปเบฒเปเบฅเบฐเบšเบฑเบ™เบˆเบธ

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบฎเบธเปˆเบ™ 8u131, Java เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบšเบฑเบ™เบˆเบธเบšเบฑเบ™เบˆเบธเบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡ ergonomics. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบ•เบญเบ™เบ™เบตเป‰ JVM เบฎเบนเป‰เบงเปˆเบฒเบกเบตเบˆเบฑเบ processor cores เบ—เบตเปˆเบกเบฑเบ™เปเบฅเปˆเบ™เบขเบนเปˆ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบเบณเบ™เบปเบ”เบ„เปˆเบฒ thread pools - เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง fork/join pools - เบ•เบฒเบก. เปเบ™เปˆเบ™เบญเบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบ”เบตเบซเบผเบฒเบ, เปเบ•เปˆเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบ—เบตเปˆเปƒเบŠเป‰ HTTP servlets เปเบฅเบฐเปเบฅเปˆเบ™เปƒเบ™ Tomcat, Jetty, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ™เบตเป‰เบˆเบฐเปƒเบซเป‰เปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฐเบเบฑเบ”เบเบฐเบ—เบนเป‰เบ™เบตเป‰เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฅเปเบ–เป‰เบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ I/O, เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เป„เบŸเบฅเปŒเบซเบผเบทเบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™เป†. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเป„เบ”เป‰เบ‚เบถเป‰เบ™เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เปเบเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบžเป‰เบญเบกเป†เบเบฑเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป‚เบ„เบ•เป‰เบฒเบซเบผเบทเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปƒเบ™ Kubernetes เบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เปเบเบ™เบˆเบฐเบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เปเบฅเบฐเบšเบฑเบ™เบซเบฒเบˆเบฐเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เปƒเบ™เบ—เบตเปˆเบชเบธเบ”.

เบ„เบงเบฒเบกเบˆเบณเปเบปเบ”

เบเบฐเบ—เบนเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เปเบฅเบฐเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบžเบฒเบเปƒเบ™เบ–เบฑเบ‡เปเบกเปˆเบ™เบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป€เบ›เบฑเบ™ panacea. เบžเบฝเบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบเบฐเบ—เบนเป‰, เปเบฅเบฐเปƒเบ™เป„เบงเป†เบ™เบตเป‰เบซเบผเบทเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบžเบปเบšเบเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบ„เบงเบฒเบกเบ–เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเปเบฅเบฐ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบŠเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบญเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก, เบซเบผเบทเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบซเบผเบทเปƒเบŠเป‰เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ, เบซเบผเบทเปƒเบŠเป‰เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบ™เปˆเบ™เบญเบ™เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบšเบดเปˆเบ‡เบžเบฒเบเปƒเบ™ JVM เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เป‰เบฒเบกเบฑเบ™. JVM เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡ (เบ•เบปเบงเบขเปˆเบฒเบ‡: XX:+UseCGroupMemoryLimitForHeap). เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ Java 9, JVM เป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบ—เบตเปˆเบˆเบฐเบเบญเบกเบฎเบฑเบšเบเบธเปˆเบกเปเบฅเบฐเบ›เบฑเบšเบ•เบปเบงเบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เบเบฒเบ™เบˆเบญเบ‡เปเบฅเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบ.

เป‚เบ„เบ•เป‰เบฒ เปเบฅเบฐเบ‚เปเป‰เบˆเบณเบเบฑเบ”

Java 11 เปเบ™เบฐเบ™เบณเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเป‚เบ„เบ•เป‰เบฒ CPU (เป€เบŠเบฑเปˆเบ™ PreferContainerQuotaForCPUCount). Kubernetes เบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปเบฅเบฐเป‚เบ„เบ•เป‰เบฒ. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบ, เปเบ•เปˆเบ–เป‰เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เป€เบเบตเบ™เป‚เบ„เบ•เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เบ”เป‰เบงเบเบ‚เบฐเบซเบ™เบฒเบ” - เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก - เบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เปเบเบ™เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เบ‚เบญเบ‡ thread เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เบปเบ™. เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰.
เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เป‚เบ„เบ•เป‰เบฒเปเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบซเบผเบทเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เบญเบญเบเบ‚เบญเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ—เบตเปˆเบ•เบดเบ”เบžเบฑเบ™เบเบฑเบš Kubernetes, เบšเบฑเบ™เบซเบฒเบเปเปˆเบšเปเปˆเป„เบ”เป‰เปเบเป‰เป„เบ‚เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เปƒเบŠเป‰โ€‹เบˆเปˆเบฒเบโ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบ•เบปเป‰เบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบซเบผเบทโ€‹เบชเบดเป‰เบ™โ€‹เบชเบธเบ”โ€‹เบเบฒเบ™ overspending. เปเบฅเบฐเบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เป‚เบซเบผเบ”เบชเบนเบ‡เบขเบนเปˆเปƒเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ, เบžเบงเบเป€เบฎเบปเบฒเป€เบเบทเบญเบšเปเบ™เปˆเบ™เบญเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบ—เป‰เป†.

เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰?

เป€เบงเบปเป‰เบฒเบ‡เปˆเบฒเบเป†, เปƒเบซเป‰เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” I/O เปเบšเบšเบญเบฐเบŠเบดเบ‡เป‚เบ„เบฃเบ™เบฑเบช เปเบฅเบฐ เบšเปเปˆเบ›เบดเบ”เบเบฑเป‰เบ™ เปเบฅเบฐเบเบญเบšเบงเบฝเบเป€เบŠเบฑเปˆเบ™ Netty, Vert.x เบซเบผเบท Akka. เบžเบงเบเบกเบฑเบ™เปเบกเปˆเบ™ เป€เปเบฒเบฐ เบชเบปเบกเบเบงเปˆเบฒเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒเบ‚เบญเบ‡เบกเบฑเบ™. เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบš I/O เบ—เบตเปˆเบšเปเปˆเบ›เบดเบ”เบเบฑเป‰เบ™, เบเบฐเบ—เบนเป‰เบ”เบฝเบงเบเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบซเบผเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบžเป‰เบญเบกเบเบฑเบ™. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบซเบ™เบถเปˆเบ‡เบเปเบฒเบฅเบฑเบ‡เบฅเปเบ–เป‰เบฒเบœเบปเบ™ I/O, เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฐเบ—เบนเป‰เบกเบฑเบ™เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเปเบฅเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบญเบทเปˆเบ™. เปเบฅเบฐเป€เบกเบทเปˆเบญเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš I/O เบกเบฒเบฎเบญเบ”เบชเบธเบ”เบ—เป‰เบฒเบ, เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เปเบฒเบญเบดเบ”เบเบฑเบ‡เบชเบทเบšเบ•เปเปˆ. เป‚เบ”เบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ interleaved เบ‚เบญเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบžเบฒเบเปƒเบ™เบเบฐเบ—เบนเป‰เบ”เบฝเบงเบเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ threads เปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™.

เบ”เป‰เบงเบ I/O เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบšเบฅเบฑเบญเบ, เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เปเบเบ™เบเบฒเบเป€เบ›เบฑเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบเปเบฒเบ™เบปเบ”เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ I/O threads เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ™. เป€เบกเบทเปˆเบญเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบˆเบเบขเบฒเบเบเบฒเบ™เป‚เบซเบผเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เปเบเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบงเบฝเบเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบซเบ™เป‰เบญเบ.

เปเบ™เบงเปƒเบ”, เบ—เบฑเบ‡เบซเบกเบปเบ”?

เบšเปเปˆ, เบกเบตเบญเบฑเบ™เบญเบทเปˆเบ™เบญเบตเบ. เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Reactive เบŠเปˆเบงเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, เปเบ•เปˆเบเบฑเบ‡เบกเบฒเปƒเบ™เบฅเบฒเบ„เบฒ. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบฅเบฐเบซเบฑเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบ•เบฒเบกเบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเปเปˆเบชเบฐเบเบฑเบ”เปเบฅเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเบฐเบเบฑเบ”เบเบฐเบ—เบนเป‰ I/O. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฎเบฒเบเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ„เบดเบ”เบ›เบปเบเบเบฐเบ•เบด.

เบ—เปเบฒเบญเบดเบ”, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ asynchronously. เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบฅเบตเปˆเบกเปƒเบŠเป‰ I/O เบ—เบตเปˆเบšเปเปˆเบ›เบดเบ”เบเบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบ„เบงเบ™เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ•เปเปˆเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป. เบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบฅเปเบ–เป‰เบฒเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบญเบตเบเบ•เปเปˆเป„เบ›. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ—เบเบฑเบšเบ„เบทเบ™, เปƒเบŠเป‰เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก reactive เบซเบผเบทเบชเบทเบšเบ•เปเปˆ. เปเบ•เปˆเบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”: เป€เบžเบทเปˆเบญเปƒเบŠเป‰ I/O เบ—เบตเปˆเบšเปเปˆเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบฑเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐเบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบšเบฅเบฑเบญเบ, เบ”เบตเบเบงเปˆเบฒเบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ HTTP, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ, เปเบ•เปˆเบเบฑเบ‡เบกเบตเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ, เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ.

เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ›เบฐเบ•เบดเบเบดเบฅเบดเบขเบฒเบ—เบฑเบ‡ เปเบปเบ” เบˆเบฒเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบชเบธเบ”, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เบเบฒเบเบ—เบตเปˆเบˆเบฐเบเบฐเป€เบžเบฒเบฐเบญเบฒเบซเบฒเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบงเบกเบฅเบฐเบซเบฑเบ” reactive เปเบฅเบฐ imperative เบเบฒเบเป€เบ›เบฑเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป€เบžเบทเปˆเบญ:

  1. เปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเป‚เบซเบผเบ”เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบŠเบญเบšเปเบง;
  2. เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบเบงเปˆเบฒเปƒเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบ‚เบญเบ‡เบกเบฑเบ™.

เปเบ™เบฐเบ™เบณ Quarkus

เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡ Quarkus - เป€เบžเบทเปˆเบญเบชเบปเบกเบ—เบปเบšเบฎเบนเบšเปเบšเบš reactive เปเบฅเบฐ imperative เบžเบฒเบเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก runtime เบ”เบฝเบง.

Quarkus เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ Vert.x เปเบฅเบฐ Netty, เบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบเบญเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒ เปเบฅเบฐเบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบขเบนเปˆเบ”เป‰เบฒเบ™เป€เบ—เบดเบ‡เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ. Quarkus เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆ HTTP microservices, เปเบ•เปˆเบเบฑเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป‚เบ”เบเป€เบซเบ”เบเบฒเบ™. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒเบ‚เบญเบ‡เบกเบฑเบ™, เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฑเบšเบฅเบฐเบšเบปเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก (Apache Kafka, AMQP, เปเบฅเบฐเบญเบทเปˆเบ™เป†).

trick เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ reactive เบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” imperative เปเบฅเบฐ reactive.

เบงเบดเบ—เบตเบเบฒเบ™ Quarkus เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒ

Quarkus เป€เบฎเบฑเบ”เบญเบฑเบ™เบ™เบตเป‰เบขเปˆเบฒเบ‡เบชเบฐเบซเบผเบฒเบ”. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบฅเบฐเบซเบงเปˆเบฒเบ‡ imperative เปเบฅเบฐ reactive เปเบกเปˆเบ™เบˆเบฐเปเบˆเป‰เบ‡ - เปƒเบŠเป‰ kernel reactive เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡. เบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบฑเบ™เบŠเปˆเบงเบเป„เบ”เป‰เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เปเบกเปˆเบ™เป„เบง, เบฅเบฐเบซเบฑเบ”เบšเปเปˆเบ–เบทเบเบšเบฅเบฑเบญเบเบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเป€เบเบทเบญเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบเบฐเบ—เบนเป‰ event-loop, aka thread IO. เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ REST เบ„เบฅเบฒเบชเบชเบดเบเบซเบผเบทเบฅเบนเบเบ„เป‰เบฒเบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡, Quarkus เบกเบตเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบžเป‰เบญเบก. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ HTTP เปƒเบ™ Quarkus เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เปเบฅเบฐเบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒ (Eclipse Vert.x เปเบฅเบฐ Netty). เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป HTTP เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบœเปˆเบฒเบ™ loop เป€เบซเบ”เบเบฒเบ™ (IO Thread) เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบชเปˆเบงเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป. เบญเบตเบ‡เบ•เบฒเบกเบˆเบธเบ”เบซเบกเบฒเบเบ›เบฒเบเบ—เบฒเบ‡, เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบญเบตเป‰เบ™เบžเบฒเบเปƒเบ™เบเบฐเบ—เบนเป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ (เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ thread worker, เปƒเบŠเป‰เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ servlets เปเบฅเบฐ Jax-RS) เบซเบผเบทเปƒเบŠเป‰ thread I/O เปเบซเบผเปˆเบ‡ (เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ reactive).

เบงเบดเบ—เบตเบเบฒเบ™ Quarkus เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปเบฅเบฐเบ›เบฐเบ•เบดเบเบดเบฅเบดเบเบฒ

เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบšเบปเบšเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบŠเป‰เบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบšเบฅเบฑเบญเบเบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Vert.x. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡, เบฎเบฑเบš เปเบฅเบฐเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฒเบเบฅเบฐเบšเบปเบšเบ•เบปเบงเบเบฒเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ”เป‰เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒ Quarkus.io เบ™เบตเป‰เปเบกเปˆเบ™เบšเบปเบ”เบฎเบฝเบ™เบ—เบตเปˆเบ”เบตเบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฑเบš Quarkus:

เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป„เบ”เป‰เบชเป‰เบฒเบ‡เบšเบปเบ”เบชเบญเบ™เปเบšเบšเปƒเบŠเป‰เบกเบทเบ—เบฒเบ‡เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เป€เบžเบทเปˆเบญเบชเบญเบ™เบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก reactive เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš, เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบต IDE, เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบ„เบญเบกเบžเบดเบงเป€เบ•เบต. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบšเบปเบ”เบฎเบฝเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰ เบ—เบตเปˆเบ™เบตเป‰.

เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”

10 เบšเบปเบ”เบฎเบฝเบ™เบงเบดเบ”เบตเป‚เบญเบเปˆเบฝเบงเบเบฑเบš Quarkus เป€เบžเบทเปˆเบญเปƒเบซเป‰เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบซเบปเบงเบ‚เปเป‰

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเป€เบงเบปเป‰เบฒเบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒ Quarkus.io, เป‚เบ„เบ - เบ™เบตเป‰ Kubernetes-oriented Java stack, เบ›เบฑเบšเปเบ•เปˆเบ‡เบชเปเบฒเบฅเบฑเบš GraalVM เปเบฅเบฐ OpenJDK HotSpot เปเบฅเบฐเบ›เบฐเบเบญเบšเบกเบฒเบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ Java เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”.

เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบซเบปเบงเบ‚เปเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบทเบญเบ 10 เบšเบปเบ”เบชเบญเบ™เบงเบดเบ”เบตเป‚เบญเบ—เบตเปˆเบเบงเบกเป€เบญเบปเบฒเบฅเบฑเบเบชเบฐเบ™เบฐเบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡ Quarkus เปเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™:

1. เปเบ™เบฐเบ™เบณ Quarkus: เบเบญเบšเบงเบฝเบ Java เบฅเบธเป‰เบ™เบ•เปเปˆเป„เบ›เบชเบณเบฅเบฑเบš Kubernetes

เป‚เบ”เบ Thomas Qvarnstrom เปเบฅเบฐ Jason Greene
เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ Quarkus เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก Java เบชเปเบฒเบฅเบฑเบš Kubernetes เปเบฅเบฐเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบŠเบตเบŸเป€เบงเบต, เปเบฅเบฐเบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเปเบšเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก reactive เปเบฅเบฐ imperative เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก runtime เบ”เบฝเบงเป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป„เบ”เป‰เบขเปˆเบฒเบ‡เบเบทเบ”เบซเบเบธเปˆเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเปเบˆเบเบขเบฒเบเบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡. เบŠเบญเบเบซเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบขเบนเปˆเปƒเบ™เบšเบปเบ”เบšเบฑเบ™เบเบฒเบเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

2. Quarkus: Superfast Subatomic Java

เป‚เบ”เบ: Burr Sutter
เบงเบดเบ”เบตเป‚เบญเบชเบญเบ™เบ™เบตเป‰เบˆเบฒเบ DevNation Live เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰ Quarkus เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java, APIs, microservices เปเบฅเบฐ serverless functions เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก Kubernetes/OpenShift, เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเบกเบฑเบ™เบ™เป‰เบญเบเบฅเบปเบ‡, เป„เบงเบเบงเปˆเบฒ, เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™.

3. Quarkus เปเบฅเบฐ GraalVM: เป€เบฅเบฑเปˆเบ‡ Hibernate เป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเป„เบงเบชเบนเบ‡เบชเบธเบ” เปเบฅเบฐเบซเบเปเป‰เบกเบฑเบ™เบฅเบปเบ‡เป€เบ›เบฑเบ™เบ‚เบฐเปœเบฒเบ”เบเปˆเบญเบ.

เบœเบนเป‰เบ‚เบฝเบ™: Sanne Grinovero
เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบงเปˆเบฒ Quarkus เบกเบฒเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”, เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”, เปเบฅเบฐเบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™, เป€เบŠเบฑเปˆเบ™ Hibernate ORM, เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบฎเบนเบšเบžเบฒเบš GraalVM เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡.

4. เบฎเบฝเบ™เบฎเบนเป‰เบ—เบตเปˆเบˆเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ

เบœเบนเป‰เบ‚เบฝเบ™: Martin Luther
เบงเบดเบ”เบตเป‚เบญเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Java เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเป‚เบ”เบเปƒเบŠเป‰ Quarkus เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ™ Knative.

5. Quarkus: เบกเบตเบ„เบงเบฒเบกเบกเปˆเบงเบ™ coding

เบœเบนเป‰เบ‚เบฝเบ™: Edson Yanaga
เบ„เบนเปˆเบกเบทเบงเบดเบ”เบตเป‚เบญเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ Quarkus เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡ Quarkus เบˆเบถเปˆเบ‡เบŠเบฐเบ™เบฐเปƒเบˆเบ‚เบญเบ‡เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ.

6. Java เปเบฅเบฐ containers - เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบฎเปˆเบงเบกเบเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”

เบ›เบฐเบเบฒเบ”เป‚เบ”เบ Mark Little
เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ™เบตเป‰เปเบ™เบฐเบ™เปเบฒเบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”เบ‚เบญเบ‡ Java เปเบฅเบฐเบญเบฐเบ—เบดเบšเบฒเบเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡ Quarkus เป€เบ›เบฑเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เบญเบ‡ Java.

7. Quarkus: Superfast Subatomic Java

เบœเบนเป‰เบ‚เบฝเบ™: Dimitris Andreadis
เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡เบ‚เปเป‰เบ”เบตเบ‚เบญเบ‡ Quarkus เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเบˆเบฒเบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ: เบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบ, เบ„เบงเบฒเบกเป„เบงเบชเบนเบ‡เบชเบธเบ”, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”.

8. เบฅเบฐเบšเบปเบšเบฅเบนเบเบชเบญเบ™เป„เบŸ Quarkus เปเบฅเบฐ subatomic

เบœเบนเป‰เบ‚เบฝเบ™: Clement Escoffier
เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš GraalVM, Quarkus เบชเบฐเบซเบ™เบญเบ‡เบ›เบฐเบชเบปเบšเบเบฒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเป„เบงเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เปเบฅเปˆเบ™ subatomic. เบœเบนเป‰เบ‚เบฝเบ™เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ”เป‰เบฒเบ™ reactive เบ‚เบญเบ‡ Quarkus เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ reactive เปเบฅเบฐ streaming.

9. Quarkus เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบขเปˆเบฒเบ‡เป„เบงเบงเบฒเปƒเบ™ Eclipse MicroProfile

เบœเบนเป‰เบ‚เบฝเบ™: John Clingan
เป‚เบ”เบเบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒ Eclipse MicroProfile เปเบฅเบฐ Quarkus, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ MicroProfile เบ—เบตเปˆเบšเบฑเบ™เบˆเบธเบšเบฑเบ™เบˆเบธเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบ•เบฑเบกเบ—เบตเปˆเบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบงเปƒเบ™เบซเบผเบฒเบเบชเบดเบšเบกเบดเบ™เบฅเบดเบงเบดเบ™เบฒเบ—เบต. เบงเบดเบ”เบตเป‚เบญเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ MicroProfile เบšเบฑเบ™เบˆเบธเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบงเบ—เบต Kubernetes.

10. Java, "Turbo" เบชเบฐเบšเบฑเบš

เบœเบนเป‰เบ‚เบฝเบ™: Marcus Biel
เบœเบนเป‰เบ‚เบฝเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Quarkus เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ–เบฑเบ‡ Java เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เป„เบงเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบšเบธเบเบ—เบฐเบฅเบธเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.



เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™