Как 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 Π² послСдниС Π³ΠΎΠ΄Ρ‹ внСсла нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, Π²Ρ€ΠΎΠ΄Π΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ergonomics ΠΈ ΠΏΡ€ΠΎΡ‡. Однако Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ 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) ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° (Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ reactive route).

Как 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