ื›ื™ืฆื“ Quarkus ืžืฉืœื‘ ืชื›ื ื•ืช ื—ื•ื‘ื” ื•ืชื’ื•ื‘ืชื™

ื”ืฉื ื” ืื ื—ื ื• ืžืชื›ื ื ื™ื ืœืคืชื— ื‘ืจืฆื™ื ื•ืช ื ื•ืฉืื™ ืžื™ื›ืœ, Java ืžืงื•ืจื™ืช ื‘ืขื ืŸ ะธ ืงื•ื‘ืจื ื˜. ื”ืžืฉืš ื”ื’ื™ื•ื ื™ ืฉืœ ื”ื ื•ืฉืื™ื ื”ืืœื” ื™ื”ื™ื” ื›ื‘ืจ ืกื™ืคื•ืจ ืขืœ ืžืกื’ืจืช Quarkus ื ื—ืฉื‘ ืขืœ ื”ืื‘ืจื”. ื”ืžืืžืจ ืฉืœ ื”ื™ื•ื ืขื•ืกืง ืคื—ื•ืช ื‘ืขื™ืฆื•ื‘ ืฉืœ "ื’'ืื•ื•ื” ืกื•ืคืจ-ืžื”ื™ืจื” ืชืช-ืื˜ื•ืžื™ืช" ื•ื™ื•ืชืจ ืขืœ ื”ื”ื‘ื˜ื—ื” ืฉืงื•ื•ืืจืงื•ืก ืžื‘ื™ื ืœืื ื˜ืจืคืจื™ื™ื–.

ื›ื™ืฆื“ Quarkus ืžืฉืœื‘ ืชื›ื ื•ืช ื—ื•ื‘ื” ื•ืชื’ื•ื‘ืชื™

Java ื•ื”-JVM ืขื“ื™ื™ืŸ ืคื•ืคื•ืœืจื™ื™ื ืžืื•ื“, ืื‘ืœ ื›ืฉืขื•ื‘ื“ื™ื ืขื ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืœืœื ืฉืจืชื™ื ื•ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ืžืงื•ืจื™ื™ื ื‘ืขื ืŸ, ื ืขืฉื” ืฉื™ืžื•ืฉ ืคื—ื•ืช ื•ืคื—ื•ืช ื‘-Java ื•ืฉืคื•ืช JVM ืื—ืจื•ืช ืžื›ื™ื•ื•ืŸ ืฉื”ืŸ ืชื•ืคืกื•ืช ื™ื•ืชืจ ืžื“ื™ ืฉื˜ื— ื–ื™ื›ืจื•ืŸ ื•ืื™ื˜ื™ื•ืช ืžื“ื™ ืœื˜ืขื™ื ื”, ืžื” ืฉื”ื•ืคืš ืื•ืชืŸ ืœื ืžืชืื™ื ืœืฉื™ืžื•ืฉ ืขื ืžื™ื›ืœื™ื ืงืฆืจื™ ืžื•ืขื“. ืœืžืจื‘ื” ื”ืžื–ืœ, ื”ืžืฆื‘ ื”ื–ื” ืžืชื—ื™ืœ ื›ืขืช ืœื”ืฉืชื ื•ืช ื”ื•ื“ื•ืช ืœืงื•ื•ืืจืงื•ืก.

ื’'ืื•ื•ื” ืชืช-ืื˜ื•ืžื™ืช ืžื”ื™ืจื” ื‘ืžื™ื•ื—ื“ ื”ื’ื™ืขื” ืœืจืžื” ื—ื“ืฉื”!

42 ืžื”ื“ื•ืจื•ืช, 8 ื—ื•ื“ืฉื™ื ืฉืœ ืขื‘ื•ื“ื” ืงื”ื™ืœืชื™ืช ื•-177 ืžืคืชื—ื™ื ืžื“ื”ื™ืžื™ื - ื”ืชื•ืฆืื” ืฉืœ ื”ื›ืœ ื”ื™ื™ืชื” ื”ืฉื—ืจื•ืจ ื‘ื ื•ื‘ืžื‘ืจ 2019 ืงื•ื•ืืจืงื•ืก 1.0, ืžื”ื“ื•ืจื” ืฉืžืกืžื ืช ืื‘ืŸ ื“ืจืš ื—ืฉื•ื‘ื” ื‘ืคื™ืชื•ื— ื”ืคืจื•ื™ืงื˜ ื•ืžืฆื™ืขื” ื”ืจื‘ื” ืคื™ืฆ'ืจื™ื ื•ื™ื›ื•ืœื•ืช ืžื’ื ื™ื‘ื•ืช (ืชื•ื›ืœื• ืœืงืจื•ื ืขืœื™ื”ืŸ ืขื•ื“ ื‘ ื”ึทื›ืจึธื–ึธื”).

ื”ื™ื•ื ื ืจืื” ืœื›ื ื›ื™ืฆื“ Quarkus ืžืฉืœื‘ ืžื•ื“ืœื™ื ืฉืœ ืชื›ื ื•ืช ื—ื™ื•ื ื™ื™ื ื•ืชื’ื•ื‘ืชื™ื™ื ืœืœื™ื‘ื” ืชื’ื•ื‘ืชื™ืช ืื—ืช. ื ืชื—ื™ืœ ื‘ื”ื™ืกื˜ื•ืจื™ื” ืงืฆืจื” ื•ืœืื—ืจ ืžื›ืŸ ื ืคืจื˜ ืžื”ื• ื”ื“ื•ืืœื™ื–ื ื”ืชื’ื•ื‘ืชื™ ืฉืœ ืงื•ื•ืืจืงื•ืก ื•ื›ื™ืฆื“ Java-ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื ืฆืœ ืืช ื”ื”ื˜ื‘ื•ืช ื”ืœืœื•.

ืฉื™ืจื•ืชื™ ืžื™ืงืจื•, ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืžื•ื ืขื•ืช ืื™ืจื•ืขื™ื ะธ ืœืœื ืฉืจืช-ืคื•ื ืงืฆื™ื•ืช - ื›ืœ ื–ื”, ื›ืžื• ืฉืื•ืžืจื™ื, ื”ื™ื•ื ื‘ืขืœื™ื™ื”. ืœืื—ืจื•ื ื”, ื”ื™ืฆื™ืจื” ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืžืžื•ืงื“ื•ืช ื‘ืขื ืŸ ื”ืคื›ื” ืœื”ืจื‘ื” ื™ื•ืชืจ ืงืœื” ื•ื ื’ื™ืฉื”, ืืš ื ื•ืชืจื• ื‘ืขื™ื•ืช - ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืžืคืชื—ื™ Java. ืœื“ื•ื’ืžื”, ื‘ืžืงืจื” ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืœืœื ืฉืจืชื™ื ื•ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื, ื™ืฉ ืฆื•ืจืš ื“ื—ื•ืฃ ืœืฆืžืฆื ืืช ื–ืžืŸ ื”ืืชื—ื•ืœ, ืœื”ืคื—ื™ืช ืืช ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ, ื•ืขื“ื™ื™ืŸ ืœื”ืคื•ืš ืืช ื”ืคื™ืชื•ื— ืฉืœื”ื ืœื ื•ื— ื•ืžื”ื ื” ื™ื•ืชืจ. ื’'ืื•ื•ื” ื‘ื™ืฆืขื” ืžืกืคืจ ืฉื™ืคื•ืจื™ื ื‘ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช, ื›ื’ื•ืŸ ืฉื™ืคื•ืจ ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืืจื’ื•ื ื•ืžื™ื” ืขื‘ื•ืจ ืžื›ื•ืœื•ืช ื•ื›ืŸ ื”ืœืื”. ืขื ื–ืืช, ืœื’ืจื•ื ืœ-Java ืœืขื‘ื•ื“ ื›ืžื• ืฉืฆืจื™ืš ื‘ืžื™ื›ืœ ืขื“ื™ื™ืŸ ืžืืชื’ืจ. ืื– ื ืชื—ื™ืœ ื‘ื”ืกืชื›ืœื•ืช ืขืœ ื›ืžื” ืžื”ืžื•ืจื›ื‘ื•ื™ื•ืช ื”ื˜ื‘ื•ืขื•ืช ื‘-Java, ืฉื”ืŸ ื—ืจื™ืคื•ืช ื‘ืžื™ื•ื—ื“ ื‘ืขืช ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ Java ืžื•ื›ื•ื•ื ื™ ืžื™ื›ืœ.

ืจืืฉื™ืช, ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ื”ื™ืกื˜ื•ืจื™ื”.

ื›ื™ืฆื“ Quarkus ืžืฉืœื‘ ืชื›ื ื•ืช ื—ื•ื‘ื” ื•ืชื’ื•ื‘ืชื™

ื ื—ืœื™ื ื•ืžื™ื›ืœื™ื

ื”ื—ืœ ืžื’ืจืกื” 8u131, Java ื”ื—ืœื” ืœืชืžื•ืš ืคื—ื•ืช ืื• ื™ื•ืชืจ ื‘ืžื›ื•ืœื•ืช ืขืงื‘ ืฉื™ืคื•ืจื™ื ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืืจื’ื•ื ื•ืžื™ื”. ื‘ืคืจื˜, ื”-JVM ื™ื•ื“ืข ื›ืขืช ืขืœ ื›ืžื” ืœื™ื‘ื•ืช ืžืขื‘ื“ ื”ื•ื ืคื•ืขืœ ื•ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ื‘ืจื™ื›ื•ืช ื—ื•ื˜ื™ื - ื‘ื“ืจืš ื›ืœืœ ื‘ืจื™ื›ื•ืช ืžื–ืœื’/ื—ื™ื‘ื•ืจ - ื‘ื”ืชืื. ื›ืžื•ื‘ืŸ ืฉื–ื” ื ื”ื“ืจ, ืื‘ืœ ื ื ื™ื— ืฉื™ืฉ ืœื ื• ืืคืœื™ืงืฆื™ื™ืช ืื™ื ื˜ืจื ื˜ ืžืกื•ืจืชื™ืช ืฉืžืฉืชืžืฉืช ื‘ืฉืจืชื™ื ืฉืœ HTTP ื•ืคื•ืขืœืช ื‘- Tomcat, Jetty ื•ื›ื•'. ื›ืชื•ืฆืื” ืžื›ืš, ืืคืœื™ืงืฆื™ื” ื–ื• ืชื™ืชืŸ ืœื›ืœ ื‘ืงืฉื” ืฉืจืฉื•ืจ ื ืคืจื“ ื•ืชืืคืฉืจ ืœื” ืœื—ืกื•ื ืืช ื”ืฉืจืฉื•ืจ ื”ื–ื” ื‘ื–ืžืŸ ื”ืžืชื ื” ืœืคืขื•ืœื•ืช ืงืœื˜/ืคืœื˜, ืœืžืฉืœ, ื‘ืขืช ื’ื™ืฉื” ืœืžืกื“ ื”ื ืชื•ื ื™ื, ืœืงื‘ืฆื™ื ืื• ืœืฉื™ืจื•ืชื™ื ืื—ืจื™ื. ื›ืœื•ืžืจ, ื”ื’ื•ื“ืœ ืฉืœ ืืคืœื™ืงืฆื™ื” ื›ื–ื• ืื™ื ื• ืชืœื•ื™ ื‘ืžืกืคืจ ื”ืœื™ื‘ื•ืช ื”ื–ืžื™ื ื•ืช, ืืœื ื‘ืžืกืคืจ ื”ื‘ืงืฉื•ืช ื‘ื•-ื–ืžื ื™ืช. ื‘ื ื•ืกืฃ, ื–ื” ืื•ืžืจ ืฉืžื›ืกื•ืช ืื• ื”ื’ื‘ืœื•ืช ื‘-Kubernetes ืขืœ ืžืกืคืจ ื”ืœื™ื‘ื•ืช ืœื ื™ืขื–ืจื• ื›ืืŸ ื”ืจื‘ื”, ื•ื”ืขื ื™ื™ืŸ ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื™ืกืชื™ื™ื ื‘ืžืฆืขืจืช.

ืชืฉื™ืฉื•ืช ื–ื™ื›ืจื•ืŸ

ื—ื•ื˜ื™ื ื”ื ื–ื™ื›ืจื•ืŸ. ื•ืžื’ื‘ืœื•ืช ื–ื™ื›ืจื•ืŸ ืชื•ืš-ืžื›ืœ ืื™ื ืŸ ื‘ืฉื•ื ืคื ื™ื ื•ืื•ืคืŸ ืชืจื•ืคืช ืคืœื. ืคืฉื•ื˜ ื”ืชื—ืœ ืœื”ื’ื“ื™ืœ ืืช ืžืกืคืจ ื”ื™ื™ืฉื•ืžื™ื ื•ื”ืฉืจืฉื•ืจื™ื, ื•ื‘ืžื•ืงื“ื ืื• ื‘ืžืื•ื—ืจ ืชื™ืชืงืœ ื‘ืขืœื™ื™ื” ืงืจื™ื˜ื™ืช ื‘ืชื“ื™ืจื•ืช ื”ืžื™ืชื•ื’ ื•ื›ืชื•ืฆืื” ืžื›ืš, ื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื. ื›ืžื• ื›ืŸ, ืื ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ืžืฉืชืžืฉืช ื‘ืžืกื’ืจื•ืช ืžื™ืงืจื•-ืฉื™ืจื•ืช ืžืกื•ืจืชื™ื•ืช, ืื• ืžืชื—ื‘ืจืช ืœืžืกื“ ื ืชื•ื ื™ื, ืื• ืžืฉืชืžืฉืช ื‘ืžื˜ืžื•ืŸ, ืื• ืžืฉืชืžืฉืช ื‘ื›ืœ ื“ืจืš ืื—ืจืช ื‘ื–ื™ื›ืจื•ืŸ, ื‘ืจื•ืจ ืฉืืชื” ืฆืจื™ืš ื›ืœื™ ืฉืžืืคืฉืจ ืœืš ืœื”ืกืชื›ืœ ื‘ืชื•ืš ื”-JVM ื•ืœืจืื•ืช ื›ื™ืฆื“ ื”ื•ื ืžื ื”ืœ ืืช ื”ื–ื™ื›ืจื•ืŸ ืžื‘ืœื™ ืœื”ืจื•ื’ ืื•ืชื•. JVM ืขืฆืžื• (ืœื“ื•ื’ืžื”, XX:+UseCGroupMemoryLimitForHeap). ื•ืœืžืจื•ืช ืฉืžืื– Java 9, ื”-JVM ืœืžื“ ืœืงื‘ืœ cgroups ื•ืœื”ืกืชื’ืœ ื‘ื”ืชืื, ืฉืžื™ืจืช ื•ื ื™ื”ื•ืœ ื”ื–ื™ื›ืจื•ืŸ ื ื•ืชืจื• ืขื ื™ื™ืŸ ืžื•ืจื›ื‘ ืœืžื“ื™.

ืžื›ืกื•ืช ื•ืžื’ื‘ืœื•ืช

Java 11 ื”ืฆื™ื’ื” ืชืžื™ื›ื” ื‘ืžื›ืกื•ืช CPU (ื›ืžื• PreferContainerQuotaForCPUCount). Kubernetes ืžืฆื™ืขื” ื’ื ืชืžื™ื›ื” ื‘ืžื’ื‘ืœื•ืช ื•ืžื›ืกื•ืช. ื›ืŸ, ื›ืœ ื–ื” ื”ื’ื™ื•ื ื™, ืื‘ืœ ืื ื”ืืคืœื™ืงืฆื™ื” ืฉื•ื‘ ื—ื•ืจื’ืช ืžื”ืžื›ืกื” ืฉื”ื•ืงืฆืชื”, ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื ืงื‘ืœ ืืช ื”ื’ื•ื“ืœ - ื›ืคื™ ืฉืงื•ืจื” ื‘ื™ื™ืฉื•ืžื™ Java ืžืกื•ืจืชื™ื™ื - ืฉื ืงื‘ืข ืœืคื™ ืžืกืคืจ ื”ืœื™ื‘ื•ืช ื•ืขื ื”ืงืฆืืช ืฉืจืฉื•ืจ ื ืคืจื“ ืœื›ืœ ืื—ืช ืžื”ืŸ. ื‘ืงืฉื”, ืื– ืื™ืŸ ื˜ืขื ื‘ื›ืœ ื–ื”.
ื‘ื ื•ืกืฃ, ืื ืืชื” ืžืฉืชืžืฉ ื‘ืžื›ืกื•ืช ื•ืžื’ื‘ืœื•ืช ืื• ื‘ืคื•ื ืงืฆื™ื•ืช ื”-scale-out ืฉืœ ื”ืคืœื˜ืคื•ืจืžื” ืฉื‘ื‘ืกื™ืก Kubernetes, ื”ื‘ืขื™ื” ื’ื ืœื ื ืคืชืจืช ืžืขืฆืžื”. ืื ื—ื ื• ืคืฉื•ื˜ ืžื‘ื–ื‘ื–ื™ื ื™ื•ืชืจ ืžืฉืื‘ื™ื ื‘ืคืชืจื•ืŸ ื”ื‘ืขื™ื” ื”ืžืงื•ืจื™ืช ืื• ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืžื•ืฆื™ืื™ื ื™ื•ืชืจ ืžื“ื™. ื•ืื ืžื“ื•ื‘ืจ ื‘ืžืขืจื›ืช ื‘ืขื•ืžืก ื’ื‘ื•ื” ื‘ืขื ืŸ ืฆื™ื‘ื•ืจื™, ื›ืžืขื˜ ื‘ื˜ื•ื— ืฉื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘ื™ื•ืชืจ ืžืฉืื‘ื™ื ืžืžื” ืฉืื ื—ื ื• ื‘ืืžืช ืฆืจื™ื›ื™ื.

ื•ืžื” ืœืขืฉื•ืช ืขื ื›ืœ ื–ื”?

ื‘ืžื™ืœื™ื ืคืฉื•ื˜ื•ืช, ื”ืฉืชืžืฉ ื‘ืกืคืจื™ื•ืช ืงืœื˜/ืคืœื˜ ื•ื‘ืžืกื’ืจื•ืช ืืกื™ื ื›ืจื•ื ื™ื•ืช ื•ืœื ื—ื•ืกืžื•ืช ื›ืžื• Netty, Vert.x ืื• ืืงื”. ื”ื ืžืชืื™ืžื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืœืขื‘ื•ื“ื” ื‘ืžื™ื›ืœื™ื ื‘ืฉืœ ื”ืื•ืคื™ ื”ืชื’ื•ื‘ืชื™ ืฉืœื”ื. ื”ื•ื“ื•ืช ืœ-I/O ืœื ื—ื•ืกื, ืื•ืชื• ืฉืจืฉื•ืจ ื™ื›ื•ืœ ืœืขื‘ื“ ืžืกืคืจ ื‘ืงืฉื•ืช ื‘ื•-ื–ืžื ื™ืช. ื‘ืขื•ื“ ื‘ืงืฉื” ืื—ืช ืžืžืชื™ื ื” ืœืชื•ืฆืื•ืช ืงืœื˜/ืคืœื˜, ื”ืฉืจืฉื•ืจ ื”ืžืขื‘ื“ ืื•ืชื” ืžืฉื•ื—ืจืจ ื•ืžืฉืชืœื˜ ืขืœ ื™ื“ื™ ื‘ืงืฉื” ืื—ืจืช. ื•ื›ืืฉืจ ืชื•ืฆืื•ืช ื”ืงืœื˜/ืคืœื˜ ืžื’ื™ืขื•ืช ืกื•ืฃ ืกื•ืฃ, ืขื™ื‘ื•ื“ ื”ื‘ืงืฉื” ื”ืจืืฉื•ื ื” ืžืžืฉื™ืš. ืขืœ ื™ื“ื™ ืขื™ื‘ื•ื“ ืฉื–ื•ืจ ืฉืœ ื‘ืงืฉื•ืช ื‘ืชื•ืš ืื•ืชื• ืฉืจืฉื•ืจ, ืืชื” ื™ื›ื•ืœ ืœื”ืคื—ื™ืช ืืช ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ื”ืฉืจืฉื•ืจื™ื ื•ืœื”ืคื—ื™ืช ืืช ืฆืจื™ื›ืช ื”ืžืฉืื‘ื™ื ืœืขื™ื‘ื•ื“ ื‘ืงืฉื•ืช.

ืขื ืงืœื˜/ืคืœื˜ ืœื ื—ื•ืกื, ืžืกืคืจ ื”ืœื™ื‘ื•ืช ื”ื•ืคืš ืœืคืจืžื˜ืจ ืžืคืชื— ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืงื•ื‘ืข ืืช ืžืกืคืจ ืคืชื™ืœื™ ื”ืงืœื˜/ืคืœื˜ ืฉื ื™ืชืŸ ืœื‘ืฆืข ื‘ืžืงื‘ื™ืœ. ื‘ืฉื™ืžื•ืฉ ื ื›ื•ืŸ, ื–ื” ืžืืคืฉืจ ืœืš ืœืคื–ืจ ื‘ื™ืขื™ืœื•ืช ืืช ื”ืขื•ืžืก ื‘ื™ืŸ ื”ืœื™ื‘ื•ืช ื•ืœื˜ืคืœ ื‘ืขื•ืžืกื™ ืขื‘ื•ื“ื” ื’ื‘ื•ื”ื™ื ื™ื•ืชืจ ืขื ืคื—ื•ืช ืžืฉืื‘ื™ื.

ืื™ืš, ื–ื” ื”ื›ืœ?

ืœื, ื™ืฉ ืžืฉื”ื• ืื—ืจ. ืชื›ื ื•ืช ืจื™ืืงื˜ื™ื‘ื™ ืขื•ื–ืจ ืœื ืฆืœ ื˜ื•ื‘ ื™ื•ืชืจ ืืช ื”ืžืฉืื‘ื™ื, ืืš ื’ื ื’ื•ื‘ื” ืžื—ื™ืจ. ื‘ืคืจื˜, ื™ื”ื™ื” ืฆื•ืจืš ืœืฉื›ืชื‘ ืืช ื”ืงื•ื“ ืœืคื™ ืขืงืจื•ื ื•ืช ืื™ ื”ื—ืกื™ืžื” ื•ืœื”ื™ืžื ืข ืžื—ืกื™ืžืช ืฉืจืฉื•ืจื™ I/O. ื•ื–ื”ื• ืžื•ื“ืœ ืื—ืจ ืœื’ืžืจื™ ืฉืœ ืคื™ืชื•ื— ื•ื‘ื™ืฆื•ืข. ื•ืœืžืจื•ืช ืฉื™ืฉ ื›ืืŸ ื”ืจื‘ื” ืกืคืจื™ื•ืช ืฉื™ืžื•ืฉื™ื•ืช, ืขื“ื™ื™ืŸ ืžื“ื•ื‘ืจ ื‘ืฉื™ื ื•ื™ ืงื™ืฆื•ื ื™ ื‘ื“ืจืš ื”ื—ืฉื™ื‘ื” ื”ืจื’ื™ืœื”.

ืจืืฉื™ืช, ืขืœื™ืš ืœืœืžื•ื“ ื›ื™ืฆื“ ืœื›ืชื•ื‘ ืงื•ื“ ืฉืคื•ืขืœ ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™. ื‘ืจื’ืข ืฉืชืชื—ื™ืœ ืœื”ืฉืชืžืฉ ื‘-I/O ืœื ื—ื•ืกื, ืขืœื™ืš ืœืฆื™ื™ืŸ ื‘ืžืคื•ืจืฉ ืžื” ืฆืจื™ืš ืœืงืจื•ืช ื›ืืฉืจ ืžืชืงื‘ืœืช ืชื’ื•ื‘ื” ืœื‘ืงืฉื”. ืคืฉื•ื˜ ืœื—ืกื•ื ื•ืœื”ืžืชื™ืŸ ื›ื‘ืจ ืœื ื™ืขื‘ื•ื“. ื‘ืžืงื•ื ื–ืืช, ืืชื” ื™ื›ื•ืœ ืœื”ืขื‘ื™ืจ ื”ืชืงืฉืจื•ื™ื•ืช ื—ื•ื–ืจื•ืช, ืœื”ืฉืชืžืฉ ื‘ืชื›ื ื•ืช ืจื™ืืงื˜ื™ื‘ื™ ืื• ื”ืžืฉืš. ืื‘ืœ ื–ื” ืœื ื”ื›ืœ: ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘-I/O ืœื ื—ื•ืกื, ืฆืจื™ืš ื’ื ืฉืจืชื™ื ื•ื’ื ืœืงื•ื—ื•ืช ืœื ื—ื•ืกืžื™ื, ืจืฆื•ื™ ื‘ื›ืœ ืžืงื•ื. ื‘ืžืงืจื” ืฉืœ HTTP ื”ื›ืœ ืคืฉื•ื˜, ืื‘ืœ ื™ืฉ ื’ื ืžืกื“ื™ ื ืชื•ื ื™ื, ืžืขืจื›ื•ืช ืงื‘ืฆื™ื ื•ืขื•ื“ ื”ืจื‘ื”.

ื•ืœืžืจื•ืช ืฉืชื’ื•ื‘ืชื™ื•ืช ืžื•ื—ืœื˜ืช ืžืงืฆื” ืœืงืฆื” ืžืžืงืกืžืช ืืช ื”ื™ืขื™ืœื•ืช, ืฉื™ื ื•ื™ ื›ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืงืฉื” ืœืขื™ื›ื•ืœ ื‘ืคื•ืขืœ. ืœื›ืŸ, ื”ื™ื›ื•ืœืช ืœืฉืœื‘ ืงื•ื“ ืชื’ื•ื‘ืชื™ ื•ืงื•ื“ ืฆื™ื•ื•ื™ ื”ื•ืคื›ืช ืœืชื ืื™ ืžื•ืงื“ื ืขืœ ืžื ืช:

  1. ื”ืฉืชืžืฉ ื‘ื™ืขื™ืœื•ืช ื‘ืžืฉืื‘ื™ื ื‘ืื–ื•ืจื™ื ื”ื˜ืขื•ื ื™ื ื‘ื™ื•ืชืจ ืฉืœ ืžืขืจื›ืช ื”ืชื•ื›ื ื”;
  2. ื”ืฉืชืžืฉ ื‘ืงื•ื“ ืกื’ื ื•ืŸ ืคืฉื•ื˜ ื™ื•ืชืจ ื‘ื—ืœืงื™ื ื”ื ื•ืชืจื™ื ืฉืœื•.

ื”ื™ื›ืจื•ืช ืขื ืงื•ื•ืืจืงื•ืก

ืœืžืขืฉื”, ื–ื• ื”ืžื”ื•ืช ืฉืœ Quarkus - ืœืฉืœื‘ ืžื•ื“ืœื™ื ืชื’ื•ื‘ืชื™ื™ื ื•ื”ื›ืจื—ื™ื™ื ื‘ืชื•ืš ืกื‘ื™ื‘ืช ื–ืžืŸ ืจื™ืฆื” ืื—ืช.

Quarkus ืžื‘ื•ืกืก ืขืœ Vert.x ื•-Netty, ืขื ืžื’ื•ื•ืŸ ืžืกื’ืจื•ืช ื•ื”ืจื—ื‘ื•ืช ืจื™ืืงื˜ื™ื‘ื™ื•ืช ืœืžืขืœื” ื›ื“ื™ ืœืขื–ื•ืจ ืœืžืคืชื—. Quarkus ืžื™ื•ืขื“ ืœื‘ื ื™ื™ืช ืœื ืจืง ืฉื™ืจื•ืชื™ ืžื™ืงืจื• HTTP, ืืœื ื’ื ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืžื•ื ืขื•ืช ืื™ืจื•ืขื™ื. ื‘ืฉืœ ืื•ืคื™ื• ื”ืชื’ื•ื‘ืชื™, ื”ื•ื ืขื•ื‘ื“ ื‘ื™ืขื™ืœื•ืช ืจื‘ื” ืขื ืžืขืจื›ื•ืช ื”ืขื‘ืจืช ื”ื•ื“ืขื•ืช (Apache Kafka, AMQP ื•ื›ื•').

ื”ื—ื•ื›ืžื” ื”ื™ื ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ืื•ืชื• ืžื ื•ืข ืชื’ื•ื‘ืชื™ ืขื‘ื•ืจ ืงื•ื“ ืฆื™ื•ื•ื™ ื•ืชื’ื•ื‘ืชื™ ื›ืื—ื“.

ื›ื™ืฆื“ Quarkus ืžืฉืœื‘ ืชื›ื ื•ืช ื—ื•ื‘ื” ื•ืชื’ื•ื‘ืชื™

ืงื•ื•ืืจืงื•ืก ืขื•ืฉื” ื–ืืช ื‘ืฆื•ืจื” ืžื‘ืจื™ืงื”. ื”ื‘ื—ื™ืจื” ื‘ื™ืŸ ืฆื™ื•ื•ื™ ืœืชื’ื•ื‘ืชื™ ื‘ืจื•ืจื” - ื”ืฉืชืžืฉื• ื‘ืงืจื ืœ ืชื’ื•ื‘ืชื™ ืขื‘ื•ืจ ืฉื ื™ื”ื. ืžื” ืฉื–ื” ื‘ืืžืช ืขื•ื–ืจ ื‘ื• ื”ื•ื ืงื•ื“ ืžื”ื™ืจ ื•ืœื ื—ื•ืกื ืฉืžื˜ืคืœ ื›ืžืขื˜ ื‘ื›ืœ ืžื” ืฉืขื•ื‘ืจ ื‘ืฉืจืฉื•ืจ ืœื•ืœืืช ื”ืื™ืจื•ืขื™ื, ื”ืœื ื”ื•ื IO thread. ืื‘ืœ ืื ื™ืฉ ืœืš REST ืงืœืืกื™ ืื• ื™ื™ืฉื•ืžื™ ืฆื“ ืœืงื•ื—, ืœ-Quarkus ื™ืฉ ืžื•ื“ืœ ืชื›ื ื•ืช ื—ื™ื•ื ื™ ืžื•ื›ืŸ. ืœื“ื•ื’ืžื”, ืชืžื™ื›ืช HTTP ื‘-Quarkus ืžื‘ื•ืกืกืช ืขืœ ืฉื™ืžื•ืฉ ื‘ืžื ื•ืข ืœื ื—ื•ืกื ื•ืชื’ื•ื‘ืชื™ (Eclipse Vert.x ื•-Netty). ื›ืœ ื‘ืงืฉื•ืช ื”-HTTP ื”ืžืชืงื‘ืœื•ืช ืขืœ ื™ื“ื™ ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ืžื•ืขื‘ืจื•ืช ืชื—ื™ืœื” ื“ืจืš ืœื•ืœืืช ืื™ืจื•ืข (IO Thread) ื•ืœืื—ืจ ืžื›ืŸ ื ืฉืœื—ื•ืช ืœื—ืœืง ืฉืœ ื”ืงื•ื“ ืฉืžื ื”ืœ ืืช ื”ื‘ืงืฉื•ืช. ื‘ื”ืชืื ืœื™ืขื“, ื ื™ืชืŸ ืœืงืจื•ื ืœืงื•ื“ ื ื™ื”ื•ืœ ื”ื‘ืงืฉื•ืช ื‘ืชื•ืš ืฉืจืฉื•ืจ ื ืคืจื“ (ืžื” ืฉื ืงืจื worker thread, ื”ืžืฉืžืฉ ื‘ืžืงืจื” ืฉืœ servlets ื•-Jax-RS) ืื• ืœื”ืฉืชืžืฉ ื‘ืฉืจืฉื•ืจ ื”-I/O ืฉืœ ื”ืžืงื•ืจ (ืžืกืœื•ืœ ืชื’ื•ื‘ืชื™).

ื›ื™ืฆื“ Quarkus ืžืฉืœื‘ ืชื›ื ื•ืช ื—ื•ื‘ื” ื•ืชื’ื•ื‘ืชื™

ืžื—ื‘ืจื™ ืžืขืจื›ืช ื”ื•ื“ืขื•ืช ืžืฉืชืžืฉื™ื ื‘ืœืงื•ื—ื•ืช ืฉืื™ื ื ื—ื•ืกืžื™ื ื”ืคื•ืขืœื™ื ืขืœ ื’ื‘ื™ ืžื ื•ืข Vert.x. ืœื›ืŸ, ืืชื” ื™ื›ื•ืœ ืœืฉืœื•ื—, ืœืงื‘ืœ ื•ืœืขื‘ื“ ื”ื•ื“ืขื•ืช ื‘ื™ืขื™ืœื•ืช ืžืžืขืจื›ื•ืช ืชื•ื›ื ืช ื”ืขื‘ืจืช ื”ื•ื“ืขื•ืช.

ื”ืืชืจ Quarkus.io ื”ื ื” ื›ืžื” ืžื“ืจื™ื›ื™ื ื˜ื•ื‘ื™ื ืฉื™ืขื–ืจื• ืœืš ืœื”ืชื—ื™ืœ ื‘ืขื‘ื•ื“ื” ืขื Quarkus:

ื™ืฆืจื ื• ื’ื ืžื“ืจื™ื›ื™ ืœื™ืžื•ื“ ืžืงื•ื•ื ื™ื ื›ื“ื™ ืœืœืžื“ ืื•ืชืš ื”ื™ื‘ื˜ื™ื ืฉื•ื ื™ื ืฉืœ ืชื›ื ื•ืช ืจื™ืืงื˜ื™ื‘ื™ ื‘ื“ืคื“ืคืŸ ื‘ืœื‘ื“, ืœืœื ืฆื•ืจืš ื‘-IDE ื•ืœืœื ืฆื•ืจืš ื‘ืžื—ืฉื‘. ืืชื” ื™ื›ื•ืœ ืœืžืฆื•ื ืฉื™ืขื•ืจื™ื ืืœื” ื›ืืŸ.

ืžืฉืื‘ื™ื ืžื•ืขื™ืœื™ื

10 ืฉื™ืขื•ืจื™ ื•ื™ื“ืื• ืขืœ Quarkus ื›ื“ื™ ืœื”ื›ื™ืจ ืืช ื”ื ื•ืฉื

ื›ืžื• ืฉืื•ืžืจื™ื ื‘ืืชืจ Quarkus.io, ืงื•ื•ืจืงื•ืก - ื–ื” ืงื•ื‘ืจื ื˜ืขืจื™ืžืช Java ืžื›ื•ื•ื ืช, ืžื•ืชืืžืช ืขื‘ื•ืจ GraalVM ื•-OpenJDK HotSpot ื•ื”ื•ืจื›ื‘ื” ืžื”ืกืคืจื™ื•ืช ื•ื”ืกื˜ื ื“ืจื˜ื™ื ื”ื˜ื•ื‘ื™ื ื‘ื™ื•ืชืจ ืฉืœ Java.

ื›ื“ื™ ืœืขื–ื•ืจ ืœืš ืœื”ื‘ื™ืŸ ืืช ื”ื ื•ืฉื, ื‘ื—ืจื ื• 10 ืžื“ืจื™ื›ื™ ื•ื™ื“ืื• ื”ืžื›ืกื™ื ื”ื™ื‘ื˜ื™ื ืฉื•ื ื™ื ืฉืœ Quarkus ื•ื“ื•ื’ืžืื•ืช ืœืฉื™ืžื•ืฉ ื‘ื•:

1. ื”ื™ื›ืจื•ืช ืขื Quarkus: The Next Generation Java Framework ืขื‘ื•ืจ Kubernetes

ืžืืช ืชื•ืžืืก ืงื•ื•ืจื ืกื˜ืจื•ื ื•ื’'ื™ื™ืกื•ืŸ ื’ืจื™ืŸ
ื”ืžื˜ืจื” ืฉืœ ืคืจื•ื™ืงื˜ Quarkus ื”ื™ื ืœื™ืฆื•ืจ ืคืœื˜ืคื•ืจืžืช Java ืขื‘ื•ืจ Kubernetes ื•ืกื‘ื™ื‘ื•ืช ืœืœื ืฉืจืชื™ื, ื•ืœืฉืœื‘ ืžื•ื“ืœื™ื ืฉืœ ืชื›ื ื•ืช ืจื™ืืงื˜ื™ื‘ื™ื™ื ื•ื—ื™ื•ื ื™ื™ื ืœืกื‘ื™ื‘ืช ื–ืžืŸ ืจื™ืฆื” ืื—ืช, ื›ืš ืฉืžืคืชื—ื™ื ื™ื•ื›ืœื• ืœื’ื•ื•ืŸ ื‘ื’ืžื™ืฉื•ืช ืืช ื”ื’ื™ืฉื” ืฉืœื”ื ื›ืืฉืจ ื”ื ืขื•ื‘ื“ื™ื ืขื ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื™ื™ืฉื•ืžื™ื ืžื‘ื•ื–ืจื•ืช. ืœืžื™ื“ืข ื ื•ืกืฃ ื‘ื”ืจืฆืืช ื”ืžื‘ื•ื ืœืžื˜ื”.

2. Quarkus: Java Subatomic Superfast

ืžืืช: ื‘ื•ืจ ืกืื˜ืจ
ืžื“ืจื™ืš ื•ื™ื“ืื• ื–ื” ืžื‘ื™ืช DevNation Live ืžื“ื’ื™ื ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘-Quarkus ื›ื“ื™ ืœื™ื™ืขืœ ื™ื™ืฉื•ืžื™ Java, ืžืžืฉืงื™ API, ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ื•ืคื•ื ืงืฆื™ื•ืช ืœืœื ืฉืจืช ื‘ืกื‘ื™ื‘ืช Kubernetes/OpenShift, ืžื” ืฉื”ื•ืคืš ืื•ืชื ืœื”ืจื‘ื” ื™ื•ืชืจ ืงื˜ื ื™ื, ืžื”ื™ืจื™ื ื•ื ื™ืชื ื™ื ืœื”ืจื—ื‘ื”.

3. Quarkus ื•-GraalVM: ื”ืืฆืช Hibernate ืœืžื”ื™ืจื•ื™ื•ืช ืกื•ืคืจ ื•ื›ื™ื•ื•ืฅ ืื•ืชื• ืœื’ื“ืœื™ื ืชืช-ืื˜ื•ืžื™ื™ื

ืžื—ื‘ืจ: Sanne Grinovero
ืžื”ืžืฆื’ืช ืชืœืžื“ื• ื›ื™ืฆื“ ื ื•ืฆืจื” Quarkus, ื›ื™ืฆื“ ื”ื™ื ืคื•ืขืœืช ื•ื›ื™ืฆื“ ื”ื™ื ืžืืคืฉืจืช ืœื›ื ืœื”ืคื•ืš ืกืคืจื™ื•ืช ืžื•ืจื›ื‘ื•ืช, ื›ืžื• Hibernate ORM, ืœืชื•ืืžื•ืช ืœืชืžื•ื ื•ืช ืžืงื•ืจื™ื•ืช ืฉืœ GraalVM.

4. ืœืžื“ ืœืคืชื— ืืคืœื™ืงืฆื™ื•ืช ืœืœื ืฉืจืช

ืžื—ื‘ืจ: ืžืจื˜ื™ืŸ ืœื•ืชืจ
ื”ืกืจื˜ื•ืŸ ืœืžื˜ื” ืžืจืื” ื›ื™ืฆื“ ืœื™ืฆื•ืจ ื™ื™ืฉื•ื Java ืคืฉื•ื˜ ื‘ืืžืฆืขื•ืช Quarkus ื•ืœืคืจื•ืก ืื•ืชื• ื›ื™ื™ืฉื•ื ืœืœื ืฉืจืช ื‘-Knative.

5. ืงื•ื•ืืจืงื•ืก: ืชื”ื ื• ื‘ืงื™ื“ื•ื“

ืžื—ื‘ืจ: ืื“ืกื•ืŸ ื™ื ืื’ื”
ืžื“ืจื™ืš ื•ื™ื“ืื• ืœื™ืฆื™ืจืช ืคืจื•ื™ืงื˜ Quarkus ื”ืจืืฉื•ืŸ ืฉืœืš, ื”ืžืืคืฉืจ ืœืš ืœื”ื‘ื™ืŸ ืžื“ื•ืข Quarkus ื–ื•ื›ื” ื‘ืœื‘ื ืฉืœ ืžืคืชื—ื™ื.

6. ื’'ืื•ื•ื” ื•ืžื›ื•ืœื•ืช - ืžื” ื™ื”ื™ื” ื”ืขืชื™ื“ ืฉืœื”ื ื‘ื™ื—ื“

ืคื•ืจืกื ืขืœ ื™ื“ื™ ืžืืจืง ืœื™ื˜ืœ
ืžืฆื’ืช ื–ื• ืžืฆื™ื’ื” ืืช ื”ื”ื™ืกื˜ื•ืจื™ื” ืฉืœ Java ื•ืžืกื‘ื™ืจื” ืžื“ื•ืข Quarkus ื”ื•ื ื”ืขืชื™ื“ ืฉืœ Java.

7. Quarkus: Java Subatomic Superfast

ืžื—ื‘ืจ: ื“ื™ืžื™ื˜ืจื™ืก ืื ื“ืจื“ื™ืก
ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ื”ื™ืชืจื•ื ื•ืช ืฉืœ Quarkus ืฉื–ื›ื• ืœื”ื›ืจื” ืžื”ืžืคืชื—ื™ื: ืคืฉื˜ื•ืช, ืžื”ื™ืจื•ื™ื•ืช ื’ื‘ื•ื”ื•ืช ื‘ืžื™ื•ื—ื“, ื”ืกืคืจื™ื•ืช ื•ื”ืกื˜ื ื“ืจื˜ื™ื ื”ื˜ื•ื‘ื™ื ื‘ื™ื•ืชืจ.

8. ืงื•ื•ืืจืงื•ืก ื•ืžืขืจื›ื•ืช ืจืงื˜ื•ืช ืชืช-ืื˜ื•ืžื™ื•ืช

ืžื—ื‘ืจ: ืงืœืžื ื˜ ืืกืงื•ืคื™ืจ
ื‘ืืžืฆืขื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืขื GraalVM, Quarkus ืžืกืคืงืช ื—ื•ื•ื™ืช ืคื™ืชื•ื— ืžื”ื™ืจื” ื‘ืžื™ื•ื—ื“ ื•ืกื‘ื™ื‘ืช ื–ืžืŸ ืจื™ืฆื” ืชืช-ืื˜ื•ืžื™ืช. ื”ืžื—ื‘ืจ ืžื“ื‘ืจ ืขืœ ื”ืฆื“ ื”ืชื’ื•ื‘ืชื™ ืฉืœ Quarkus ื•ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ื• ืœื‘ื ื™ื™ืช ืืคืœื™ืงืฆื™ื•ืช ืชื’ื•ื‘ืชื™ื•ืช ื•ืกื˜ืจื™ืžื™ื ื’.

9. Quarkus ื•ืคื™ืชื•ื— ืžื”ื™ืจ ืฉืœ ืืคืœื™ืงืฆื™ื•ืช ื‘-Eclipse MicroProfile

ืžื—ื‘ืจ: ื’'ื•ืŸ ืงืœื™ื ื’ืŸ
ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ืฉืœ Eclipse MicroProfile ื•-Quarkus, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ ืžื›ื•ืœื•ืช MicroProfile ืขื ื›ืœ ื”ืชื›ื•ื ื•ืช ื”ืžื•ืคืขืœื•ืช ืชื•ืš ืขืฉืจื•ืช ืืœืคื™ื•ืช ืฉื ื™ื•ืช. ื”ืกืจื˜ื•ืŸ ืžืคืจื˜ ื›ื™ืฆื“ ืœืงื•ื“ ืืคืœื™ืงืฆื™ื™ืช MicroProfile ืžื›ื•ืœืช ืœืคืจื™ืกื” ื‘ืคืœื˜ืคื•ืจืžืช Kubernetes.

10. Java, ื’ืจืกืช "ื˜ื•ืจื‘ื•".

ืžื—ื‘ืจ: ืžืจืงื•ืก ื‘ื™ืœ
ื”ืžื—ื‘ืจ ืžืจืื” ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘-Quarkus ื›ื“ื™ ืœื™ืฆื•ืจ ืงื•ื ื˜ื™ื™ื ืจื™ื ืกื•ืคืจ-ืงื˜ื ื™ื ื•ืžื”ื™ืจื™ื ืฉืœ Java ื”ืžืืคืฉืจื™ื ืคืจื™ืฆื•ืช ื“ืจืš ืืžื™ืชื™ื•ืช, ื‘ืžื™ื•ื—ื“ ื‘ืกื‘ื™ื‘ื•ืช ืœืœื ืฉืจืช.



ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”