Как Quarkus ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π’Π°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ сСриозно Π΄Π° Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ Ρ‚Π΅ΠΌΠΈΡ‚Π΅ ΠΎΠΊΠΎΠ»ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅, Cloud-Native Java ΠΈ Kubernetes. Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ Ρ‚Π΅ΠΌΠΈ Ρ‰Π΅ бъдС Ρ€Π°Π·ΠΊΠ°Π·ΡŠΡ‚ Π·Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Quarkus, ΠΊΠΎΠΉΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ Π½Π° Π₯Π°Π±Ρ€Π°. Π”Π½Π΅ΡˆΠ½Π°Ρ‚Π° статия Π΅ посвСтСна Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π½Π° устройството Π½Π° "субатомната ΡΠ²Ρ€ΡŠΡ…Π±ΡŠΡ€Π·Π° Java", ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π½Π° пСрспСктивитС, ΠΊΠΎΠΈΡ‚ΠΎ Quarkus носи Π² Enterprise.

Как Quarkus ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Java ΠΈ JVM всС ΠΎΡ‰Π΅ са ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ популярни, Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π΅Π·ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ микросСрвизи, Java ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° JVM сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ всС ΠΏΠΎ-рядко, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π·Π°Π΅ΠΌΠ°Ρ‚ Ρ‚Π²ΡŠΡ€Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ място Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚ Ρ‚Π²ΡŠΡ€Π΄Π΅ Π±Π°Π²Π½ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π³ΠΈ ΠΏΡ€Π°Π²ΠΈ нСподходящи Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ с ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Π—Π° щастиС, Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ‚Π°Π·ΠΈ ситуация Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° сС промСня Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Quarkus.

Π‘Π²Ρ€ΡŠΡ…Π±ΡŠΡ€Π·Π°Ρ‚Π° субатомна Java стигна Π΄ΠΎ Π½ΠΎΠ²ΠΎ Π½ΠΈΠ²ΠΎ!

42 издания, 8 мСсСца Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° общността ΠΈ 177 нСвСроятни Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ – всичко Ρ‚ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ ΠΏΡ€Π΅Π· Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ 2019 Π³ΠΎΠ΄ΠΈΠ½Π° Quarkus 1.0, вСрсия, която ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Π²Π°ΠΆΠ½Π° Π²Π΅Ρ…Π° Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° мноТСство страхотни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ (ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° тях ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π² анонса).

ДнСс Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Quarkus обСдинява ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ Π½Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π΅Π΄ΠΈΠ½Π½ΠΎ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ядро. Π©Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с ΠΊΡ€Π°Ρ‚ΡŠΠΊ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° историята, Π° слСд Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π² ΠΊΠ°ΠΊΠ²ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ двойнствСността Π½Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ ядро Π½Π° Quarkus ΠΈ ΠΊΠ°ΠΊ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π²ΡŠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ прСдимства.

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΠ·ΠΈ, управлявани ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ ΠΈ serverless-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ – всичко Ρ‚ΠΎΠ²Π° днСс, ΠΊΠ°ΠΊΡ‚ΠΎ сС ΠΊΠ°Π·Π²Π°, Π΅ Π½Π° Π²ΡŠΠ·Ρ…ΠΎΠ΄. Π’ послСдно Π²Ρ€Π΅ΠΌΠ΅ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ стана ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-лСсно ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ останаха – особСно Π·Π° Java Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅. НапримСр, ΠΏΡ€ΠΈ serverless Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ микросСрвизи Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° остра нСобходимост Π΄Π° сС ΡΡŠΠΊΡ€Π°Ρ‚ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° стартиранС, Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈΠΌ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½Π° ΠΈ приятна. Java Π² послСднитС Π³ΠΎΠ΄ΠΈΠ½ΠΈ донСсС някои подобрСния, ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ Ρ‚.Π½. ΠžΠ±Π°Ρ‡Π΅, постиганСто Π½Π° Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Java Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ всС ΠΎΡ‰Π΅ Π΅ слоТно. Π—Π°Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° някои ΠΎΡ‚ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ слоТности Π½Π° Java, ΠΊΠΎΠΈΡ‚ΠΎ особСно остро сС проявяват ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ Java прилоТСния.

Π—Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ, Π½Π΅ΠΊΠ° сС ΠΎΠ±ΡŠΡ€Π½Π΅ΠΌ към историята.

Как Quarkus ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ΠŸΠΎΡ‚ΠΎΡ†ΠΈ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ

ΠžΡ‚ вСрсия 8u131, Java Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Ρ‡Ρ€Π΅Π· подобрСния във функцията ergonomics. Π’ частност, сСга JVM Π·Π½Π°Π΅ Π½Π° ΠΊΠΎΠ»ΠΊΠΎ процСсорни ядра Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Π΄Π° настрои ΠΏΡƒΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ - ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡƒΠ»ΠΎΠ²Π΅Ρ‚Π΅ fork/join. Π Π°Π·Π±ΠΈΡ€Π° сС, Ρ‚ΠΎΠ²Π° Π΅ нСвСроятно, Π½ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° HTTP сСрвлСти ΠΈ сС изпълнява Π² Tomcat, Jetty ΠΈ Π΄Ρ€. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‰Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π° всяка заявка ΠΈ Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΎΡ‡Π°ΠΊΠ²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π‘Π”, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ услуги. ВоСст, Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ зависи Π½Π΅ ΠΎΡ‚ броя Π½Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ядра, Π° ΠΎΡ‚ броя Π½Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ заявки. ОсвСн Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΊΠ²ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΈΡ‚Π΅ Π² Kubernetes относно броя Π½Π° ядрата Ρ‚ΡƒΠΊ Π½Π΅ особСно Ρ‰Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚, ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка всичко Ρ‰Π΅ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ с Ρ‚Ρ€ΠΎΡ‚Π»ΠΈΠ½Π³.

Π˜Π·Ρ‡Π΅Ρ€ΠΏΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°

ΠŸΠΎΡ‚ΠΎΡ†ΠΈ – Ρ‚ΠΎΠ²Π° Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚. И Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈΡ‚Π΅ ограничСния Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π΅ са панацСя. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚Π΅ броя Π½Π° прилоТСнията ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ ΠΈ Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ късно Ρ‰Π΅ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ‚Π΅ с ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½ Ρ€ΡŠΡΡ‚ Π½Π° чСстотата Π½Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈΡΡ‚Π° ΠΈ, слСдоватСлно, с дСградация Π½Π° производитСлността. ОсвСн Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈ микросСрвизни Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²Π΅ ΠΈΠ»ΠΈ сС ΡΠ²ΡŠΡ€Π·Π²Π° с Π‘Π”, ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅, ΠΈΠ»ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π° ΠΏΠ°ΠΌΠ΅Ρ‚, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π²ΠΈ Π΅ Π½ΡƒΠΆΠ΅Π½ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° Π½Π°Π΄Π½ΠΈΠΊΠ½Π΅ Π² JVM ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈ ΠΊΠ°ΠΊ тя управлява ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π±Π΅Π· Π΄Π° ΡƒΠ±ΠΈΠ΅ самата JVM (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, XX:+UseCGroupMemoryLimitForHeap). И Π΄ΠΎΡ€ΠΈ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅, ΠΎΡ‚ Java 9 Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ, JVM Π½Π°ΡƒΡ‡ΠΈ Π΄Π° Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ° cgroups ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Π΄Π° сС Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°, Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° остават доста слоТна Ρ€Π°Π±ΠΎΡ‚Π°.

ΠšΠ²ΠΎΡ‚ΠΈ ΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΈ

Π’ Java 11 сС появи ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° CPU ΠΊΠ²ΠΎΡ‚ΠΈ (ΠΊΠ°Ρ‚ΠΎ PreferContainerQuotaForCPUCount). Kubernetes ΡΡŠΡ‰ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π»ΠΈΠΌΠΈΡ‚ΠΈ ΠΈ ΠΊΠ²ΠΎΡ‚ΠΈ. Π”Π°, всичко Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° смисъл, Π½ΠΎ, Π°ΠΊΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚Π½ΠΎΠ²ΠΎ надвиши Π·Π°Π΄Π°Π΄Π΅Π½Π°Ρ‚Π° ΠΊΠ²ΠΎΡ‚Π°, ΠΎΡ‚Π½ΠΎΠ²ΠΎ стигамС Π΄ΠΎ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ – ΠΊΠ°ΠΊΡ‚ΠΎ Π² случая с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Java прилоТСния – сС опрСдСля спорСд броя Π½Π° ядрата ΠΈ с Π½Π°Π·Π½Π°Ρ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π° всяка заявка, Ρ‚.Π΅. ΠΏΠΎΠ»Π·Π°Ρ‚Π° ΠΎΡ‚ всичко Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ°Π»ΠΊΠ°.
ОсвСн Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠ²ΠΎΡ‚ΠΈ ΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΈ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ (scale-out) ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, която Π΅ Π² основата Π½Π° Kubernetes, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΡΡŠΡ‰ΠΎ Π½Π΅ сС Ρ€Π΅ΡˆΠ°Π²Π° сам ΠΏΠΎ сСбС си. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ…Π°Ρ€Ρ‡ΠΈΠΌ ΠΏΠΎΠ²Π΅Ρ‡Π΅ рСсурси Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка стигамС Π΄ΠΎ ΠΏΡ€Π΅Ρ€Π°Π·Ρ…ΠΎΠ΄ Π½Π° рСсурси. А Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π΅ високо Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½Π° систСма Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎ, ΠΏΠΎΡ‡Ρ‚ΠΈ със сигурност Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ рСсурси, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ наистина Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Какво Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ с всичко Ρ‚ΠΎΠ²Π°?

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ асинхронни ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄ ΠΈ Ρ€Π°ΠΌΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ Netty, Vert.x ΠΈΠ»ΠΈ Akka. Π’Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-подходящи Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π·Π°Ρ€Π°Π΄ΠΈ своята Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Π° ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π°. ΠŸΠΎΡ€Π°Π΄ΠΈ нСблокиращия Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄, Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° мноТСство Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈ заявки. Π”ΠΎΠΊΠ°Ρ‚ΠΎ Π΅Π΄Π½Π° заявка Ρ‡Π°ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄Π°, обработващият я ΠΏΠΎΡ‚ΠΎΠΊ сС освобоТдава ΠΈ ΠΏΠΎΠ΅ΠΌΠ° Π΄Ρ€ΡƒΠ³Π° заявка. А ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄Π° Π½Π°ΠΉ-накрая пристигнат, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° заявка ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°. Π§Ρ€Π΅Π· Ρ€Π΅Π΄ΡƒΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° заявки Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ общия Π±Ρ€ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° рСсурси ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявки.

ΠŸΡ€ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄, броят Π½Π° ядрото става ΠΊΠ»ΡŽΡ‡ΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠΉ опрСдСля броя Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ. ΠŸΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Ρ‚ΠΎΠ²Π° позволява Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ разпрСдСлянС Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ядрата ΠΈ справянС с ΠΏΠΎ-високи натоварвания ΠΏΡ€ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ рСсурси.

Как, ΠΈ Ρ‚ΠΎΠ²Π° Π΅ всичко?

НС, ΠΈΠΌΠ° ΠΈ Π½Π΅Ρ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ. Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ рСсурситС, Π½ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠΌΠ° своята Ρ†Π΅Π½Π°. Π’ частност, ΠΊΠΎΠ΄ΡŠΡ‚ Ρ‰Π΅ трябва Π΄Π° бъдС прСнаписан Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ Π½Π° нСблокируСмост ΠΈ Π΄Π° сС избягва Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄. А Ρ‚ΠΎΠ²Π° Π΅ съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ изпълнСниС. И Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΡƒΠΊ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚ΠΎΠ²Π° всС ΠΏΠ°ΠΊ Π΅ Ρ€Π°Π΄ΠΈΠΊΠ°Π»Π½Π° промяна Π½Π° обичайния Π½Π°Ρ‡ΠΈΠ½ Π½Π° мислСнС.

На ΠΏΡŠΡ€Π²ΠΎ място, трябва Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ асинхронно. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π½Π΅ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π΅Π½ Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄, Π²ΠΈΠ΅ трябва ясно Π΄Π° ΠΎΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° сС случи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° заявката. ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚ΡΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ опция. ВмСсто Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈ повиквания, Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ ΠΈΠ»ΠΈ continuation. Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ всичко: Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π½Π΅ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π΅Π½ Π²Ρ…ΠΎΠ΄-ΠΈΠ·Ρ…ΠΎΠ΄, са Π²ΠΈ Π½ΡƒΠΆΠ½ΠΈ ΠΈ Π½Π΅ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π½ΠΎ навсякъдС. Π’ случая с HTTP всичко Π΅ просто, Π½ΠΎ ΠΈΠΌΠ° ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ.

И ΠΌΠ°ΠΊΠ°Ρ€ Ρ‚ΠΎΡ‚Π°Π»Π½Π°Ρ‚Π° ΡΠΊΡ€ΡŠΡΡ‚Π½Π° рСактивност Π΄Π° осигурява максимална СфСктивност, Ρ‚Π°ΠΊΡŠΠ² ΠΏΡ€Π΅Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ‚Ρ€ΡƒΠ΄Π΅Π½ Π·Π° усвояванС Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. Π—Π°Ρ‚ΠΎΠ²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС ΡΡŠΡ‡Π΅Ρ‚Π°ΡΡ‚ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄ става Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ условиС, Π·Π° Π΄Π°:

  1. Π•Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ рСсурситС Π² Π½Π°ΠΉ-Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈΡ‚Π΅ части Π½Π° софтуСрната систСма;
  2. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΠΎ-прост стил Π½Π° ΠΊΠΎΠ΄ Π² останалитС части.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡΠΌΠ΅ Quarkus

Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Quarkus Π΅ Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π΅Π΄Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° срСда.

Π’ основата Π½Π° Quarkus стоят Vert.x ΠΈ Netty, Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π΅Π΄ΠΈΡ†Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΡƒΠ΅Ρ€Ρ†ΠΈ ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅. Quarkus Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π΅ само Π½Π° HTTP микросСрвизи, Π½ΠΎ ΠΈ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ, управлявани ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ. Π‘Π°Π·ΠΈΡ€Π°Π½ Π½Π° своята Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Π° ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π°, Ρ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ със систСми Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ (Apache Kafka, AMQP ΠΈ Π΄Ρ€.).

Цялата хитрост Π΅ ΠΊΠ°ΠΊ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄.

Как Quarkus ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Quarkus сС справя блСстящо с Ρ‚ΠΎΠ²Π°. Π˜Π·Π±ΠΎΡ€ΡŠΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ – Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΈ Π΄Π²Π°Ρ‚Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ ядра. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ°Π³Π° с Π±ΡŠΡ€Π· Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всичко, ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‰ΠΎ ΠΏΡ€Π΅Π· Ρ†ΠΈΠΊΡŠΠ»Π° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ (event-loop thread, ΡΡŠΡ‰ΠΎ извСстСн ΠΊΠ°Ρ‚ΠΎ IO thread). Но Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ класичСски REST прилоТСния ΠΈΠ»ΠΈ клиСнтски прилоТСния, Quarkus ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. НапримСр, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° HTTP Π² Quarkus Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° Π½Π° основата Π½Π° Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ (Eclipse Vert.x ΠΈ Netty). Всички HTTP заявки, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½ΠΈ ΠΎΡ‚ Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡŠΡ€Π²ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‚ ΠΏΡ€Π΅Π· Ρ†ΠΈΠΊΡŠΠ»Π° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ (IO Thread), Π° слСд Ρ‚ΠΎΠ²Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ към частта ΠΎΡ‚ ΠΊΠΎΠ΄Π°, която управлява заявкитС. Π’ зависимост ΠΎΡ‚ Ρ†Π΅Π»Ρ‚Π° ΠΊΠΎΠ΄Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° заявкитС ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²ΠΈΠΊΠ°Π½ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ (Ρ‚Π°ΠΊΠ° нарСчСния worker thread, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€ΠΈ сСрвлСти ΠΈ Jax-RS) ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° оригиналния Π²Ρ…ΠΎΠ΄Π½ΠΎ-ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ (Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚).

Как Quarkus ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

Π—Π° ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‰ΠΈΡ‚Π΅ систСми Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π²ΡŠΡ€Ρ…Ρƒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Vert.x. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΎΡ‚ систСми, ΠΊΠΎΠΈΡ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ messaging middleware.

На сайта Quarkus.io Π‘ΡŠΠ±Ρ€Π°Π½ΠΈ са няколко ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²Π°, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π° с Quarkus:

ОсвСн Ρ‚ΠΎΠ²Π°, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΡ…ΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ практичСски ΡƒΡ€ΠΎΡ†ΠΈ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ аспСкти Π½Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ само с Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ – Π½Π΅ сС изисква IDE, Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€ΡŠΡ‚ Π½Π΅ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π΅Π·ΠΈ ΡƒΡ€ΠΎΡ†ΠΈ Ρ‚ΡƒΠΊ.

ПолСзни рСсурси

10 Π²ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊΠ° ΠΏΠΎ Quarkus, Π·Π° Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с Ρ‚Π΅ΠΌΠ°Ρ‚Π°

ΠšΠ°ΠΊΡ‚ΠΎ сС пишС Π½Π° сайта Quarkus.io, Quarkus – Ρ‚ΠΎΠ²Π° Π΅ Kubernetes-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Java стСк, създадСн Π·Π° GraalVM ΠΈ OpenJDK HotSpot, ΡΡŠΡΡ‚Π°Π²Π΅Π½ ΠΎΡ‚ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ Java Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ стандарти.

Π—Π° Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΠΌ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с Ρ‚Π΅ΠΌΠ°Ρ‚Π°, смС ΠΏΠΎΠ΄Π±Ρ€Π°Π»ΠΈ 10 Π²ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊΠ°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ аспСкти Π½Π° Quarkus ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅:

1. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡΠΌΠ΅ Quarkus: Java Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΡ‚ Π½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π·Π° Kubernetes

Автори: Вомас ΠšΠ²ΠΎΡ€Π½ΡΡ‚Ρ€ΠΎΠΌ (Thomas Qvarnstrom) ΠΈ ДТСйсон Π“Ρ€ΠΈΠ½ (Jason Greene)
Π¦Π΅Π»Ρ‚Π° Π½Π° Quarkus Π΅ Π΄Π° създадС Java ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° Kubernetes ΠΈ serverless срСди, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π² Π΅Π΄Π½Π° Π΅Π΄ΠΈΠ½Π½Π° срСда Π·Π° изпълнСниС, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° Π²Π°Ρ€ΠΈΡ€Π°Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° си ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΡˆΠΈΡ€ΠΎΠΊ ΡΠΏΠ΅ΠΊΡ‚ΡŠΡ€ ΠΎΡ‚ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ Π½Π° прилоТСния. НаучСтС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π²ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

2. Quarkus: ΡΠ²Ρ€ΡŠΡ…Π±ΡŠΡ€Π·Π° субатомна Java

Автор: Π‘Π»ΡŽΡ€ Π‘Π°Ρ‚Ρ‚Π΅Ρ€ (Burr Sutter)
Π’ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-лСкторията DevNation Live ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Quarkus Π·Π° оптимизация Π½Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΈ Java прилоТСния, API, микросСрвизи ΠΈ serverless Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² срСдата Π½Π° Kubernetes/OpenShift, ΠΏΡ€Π°Π²Π΅ΠΉΠΊΠΈ Π³ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ, ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΈ ΠΈ ΠΏΠΎ-ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΈ.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

3. Quarkus ΠΈ GraalVM: ускоряванС Π½Π° Hibernate Π΄ΠΎ ΡΠ²Ρ€ΡŠΡ…ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ ΠΈ компрСсиранС Π΄ΠΎ субатомни Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ

Автор: Π‘Π΅ΠΉΠ½ Π“Ρ€ΠΈΠ½ΠΎΠ²Π΅Ρ€ΠΎ (Sanne Grinovero)
ΠžΡ‚ прСзСнтацията Ρ‰Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ Π΅ създадСн Quarkus, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ ΠΊΠ°ΠΊ позволява комплСксни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠ°Ρ‚ΠΎ Hibernate ORM, Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ с native изобраТСния GraalVM.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

4. Π£Ρ‡ΠΈΠΌ сС Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ serverless прилоТСния

Автор: ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π›ΡŽΡ‚Π΅Ρ€ (Marthen Luther)
Π’ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ просто Java ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Quarkus ΠΈ Π΄Π° Π³ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ serverless ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Knative.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

5. Quarkus: ΠΊΠΎΠ΄ΠΈΡ€Π°ΠΉΡ‚Π΅ с удоволствиС

Автор: Едсон Π―Π½Π°Π³Π° (Edson Yanaga)
Π’ΠΈΠ΄Π΅ΠΎΠ³ΠΈΠ΄ Π·Π° създаванС Π½Π° вашия ΠΏΡŠΡ€Π²ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Quarkus, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π·Π°Ρ‰ΠΎ Quarkus ΠΏΠ΅Ρ‡Π΅Π»ΠΈ ΡΡŠΡ€Ρ†Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

6. Java ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ – ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ бъдС Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ ΠΈΠΌ Π·Π°Π΅Π΄Π½ΠΎ

Автор: ΠœΠ°Ρ€ΠΊ Π›ΠΈΡ‚Ρ‚ΡŠΠ» (Mark Little)
Π’Π°Π·ΠΈ прСзСнтация Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π° с историята Π½Π° Java ΠΈ обяснява Π·Π°Ρ‰ΠΎ Quarkus Π΅ Π±ΡŠΠ΄Π΅Ρ‰Π΅Ρ‚ΠΎ Π½Π° Java.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

7. Quarkus: ΡΠ²Ρ€ΡŠΡ…Π±ΡŠΡ€Π·Π° субатомна Java

Автор: Дмитрис АдрСандис (Dimitris Andreadis)
ΠŸΡ€Π΅Π³Π»Π΅Π΄ Π½Π° прСдимствата Π½Π° Quarkus, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ ΠΏΡ€ΠΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅: простота, ΡΠ²Ρ€ΡŠΡ…Π²ΠΈΡΠΎΠΊΠΈ скорости, Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ стандарти.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

8. Quarkus ΠΈ субатомни Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ систСми

Автор: ΠšΠ»Π΅ΠΌΠ΅Π½Ρ‚ Π•ΡΠΊΠΎΡ„ΡŒΠ΅Ρ€ (Clement Escoffier)
Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° интСграцията с GraalVM, Quarkus осигурява ΡΠ²Ρ€ΡŠΡ…Π±ΡŠΡ€Π·ΠΎ прСТивяванС ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈ субатомна срСда Π·Π° изпълнСниС. ΠΠ²Ρ‚ΠΎΡ€ΡŠΡ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ‚Π° страна Π½Π° Quarkus ΠΈ ΠΊΠ°ΠΊ Π΄Π° я ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ прилоТСния ΠΈ прилоТСния Π·Π° стрийминг.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

9. Quarkus ΠΈ Π±ΡŠΡ€Π·ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° прилоТСния Π² Eclipse MicroProfile

Автор: Π”ΠΆΠΎΠ½ Клинган (John Clingan)
ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ Eclipse MicroProfile с Quarkus, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΏΡŠΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ прилоТСния MicroProfile, ΠΊΠΎΠΈΡ‚ΠΎ стартират Π·Π° дСсСтки милисСкунди. Π’ΡŠΠ² Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ сС обсъТда ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΊΠ°ΠΊ Π΄Π° сС ΠΊΠΎΠ΄ΠΈΡ€Π°Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ прилоТСния MicroProfile Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Kubernetes.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

10. Java, вСрсия "Π’ΡƒΡ€Π±ΠΎ"

Автор: ΠœΠ°Ρ€ΠΊΡƒΡ Π‘ΠΈΠ» (Marcus Biel)
ΠΠ²Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Quarkus Π·Π° създаванС Π½Π° супСрмалки ΠΈ ΡΡƒΠΏΠ΅Ρ€Π±ΡŠΡ€Π·ΠΈ Java ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ позволяват истински ΠΏΡ€ΠΎΠ±ΠΈΠ², особСно Π² serverless срСди.

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ


Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com
ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster