Quarkus: ืžื•ื“ืจื ื™ื–ืฆื™ื” ืฉืœ ื™ื™ืฉื•ืžื™ื ื‘ืืžืฆืขื•ืช Helloworld ื›ื“ื•ื’ืžื” ืž-JBoss EAP Quickstart (ื”ืžืฉืš)

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

Quarkus: ืžื•ื“ืจื ื™ื–ืฆื™ื” ืฉืœ ื™ื™ืฉื•ืžื™ื ื‘ืืžืฆืขื•ืช Helloworld ื›ื“ื•ื’ืžื” ืž-JBoss EAP Quickstart (ื”ืžืฉืš)

ะ’ ืคื•ืกื˜ ืงื•ื“ื ื”ืกืชื›ืœื ื• ืขืœ ืžื•ื“ืจื ื™ื–ืฆื™ื” ืฉืœ ื™ื™ืฉื•ืžื™ Java ื‘ืืžืฆืขื•ืช ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื ืชืžื›ื•ืช Quarkus (CDI ื•-Servlet 3) ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืชื•ื›ื ื™ืช helloworld ืžื”ืžืื’ืจ ื›ื“ื•ื’ืžื” Red Hat JBoss Enterprise Application Platform (JBoss EAP) ื”ืชื—ืœื” ืžื”ื™ืจื”. ื”ื™ื•ื ื ืžืฉื™ืš ืืช ื ื•ืฉื ื”ืžื•ื“ืจื ื™ื–ืฆื™ื” ื•ื ื“ื•ืŸ ื‘ื ื•ืฉื ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ.

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

ืœืžื™ื“ืข ื ื•ืกืฃ ืขืœ ืžื“ื™ื“ืช ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ, ืขื™ื™ืŸ ื‘ืžื“ืจื™ืš ืฉืœ Quarkus ืฉื›ื•ืชืจืชื• ืžื“ื™ื“ืช ื‘ื™ืฆื•ืขื™ื - ื›ื™ืฆื“ ืื ื• ืžื•ื“ื“ื™ื ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ?

ืœื”ืœืŸ ืคืฉื•ื˜ ื ืจืื” ืœืš ื›ื™ืฆื“ ืœื”ืฉื•ื•ืช ื ืชื•ื ื™ ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ ืขื‘ื•ืจ ืฉืœื•ืฉื” ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ื™ื™ืฉื•ืžื™ื (JBoss EAP, ื—ื‘ื™ืœืช JAR ื•ืงื•ื‘ืฅ ื”ืคืขืœื”) ืขืœ ื™ื“ื™ ืื™ืกื•ืฃ ื”ื ืชื•ื ื™ื ืขืœ ืœื™ื ื•ืงืก ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช pmap ื•-ps.

JBoss EAP

ืื ื• ืžืฉื™ืงื™ื ืžื•ืคืข ืฉืœ ืืคืœื™ืงืฆื™ื™ืช JBoss EAP (ืจืื” ืกืขื™ืฃ "ืคืจื™ืกืช helloworld" ื‘ ืคื•ืกื˜ ืงื•ื“ื) ื•ืœืื—ืจ ืžื›ืŸ ื—ืคืฉ ืืช ื”-PID ืฉืœ ื”ืชื”ืœื™ืš ืฉืœื• (ื‘ื“ื•ื’ืžื” ืฉืœื ื• ื”ื•ื 7268) ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” ื”ื‘ืื”:

$ pgrep -lf jboss
7268 java

ื”ืขืจื”. ื”ืืคืฉืจื•ืช โ€“a ืžืืคืฉืจืช ืœื—ืœืฅ ืืช ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ืžืœืื” (ื›ืœื•ืžืจ: $ pgrep -af jboss).

ื›ืขืช ืื ื• ืžืฉืชืžืฉื™ื ื‘-PID 7268 ื‘ืคืงื•ื“ื•ืช ps ื•-pmap.

ื”ื ื” ื›ืš:

$ ps -o pid,rss,command -p 7268
PID RSS COMMAND 
7268 665348 java -D[Standalone] -server -verbose:gc -Xloggc:/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standalone/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferI

ื•ื›ื›ื”:

$ pmap -x 7268
7268:   java -D[Standalone] -server -verbose:gc -Xloggc:/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standalone/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=3M -XX:-TraceClassUnloading -Xms1303m -Xmx1303m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Dorg.jboss.boot.log.file=/home/mrizzi/Tools/jboss-eap-7.2.0/jboss-eap-7.2/standa
Address           Kbytes     RSS   Dirty Mode  Mapping
00000000ae800000 1348608  435704  435704 rw---   [ anon ]
0000000100d00000 1035264       0       0 -----   [ anon ]
000055e4d2c2f000       4       4       0 r---- java
000055e4d2c30000       4       4       0 r-x-- java
000055e4d2c31000       4       0       0 r---- java
000055e4d2c32000       4       4       4 r---- java
000055e4d2c33000       4       4       4 rw--- java
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         3263224  672772  643024

ืื ื• ืžืกืชื›ืœื™ื ืขืœ ืขืจืš ื”-RSS ื•ืจื•ืื™ื ืฉ-JBoss EAP ืฆื•ืจืš ื›-650 MB ืฉืœ ื–ื™ื›ืจื•ืŸ.

ื—ื‘ื™ืœืช JAR

ืื ื• ืžืฉื™ืงื™ื ืืช ืืคืœื™ืงืฆื™ื™ืช JAR (ืจืื” ืืช ื”ืกืขื™ืฃ "ื”ืคืขืœ ืืช helloworld ืืจื•ื– ื‘-JAR" ื‘ ืคื•ืกื˜ ืงื•ื“ื):

$ java -jar ./target/helloworld-<version>-runner.jar

ืื ื• ืžืกืชื›ืœื™ื ืฉื•ื‘ ืขืœ ื”-PID ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” pgrep (ื”ืคืขื ืื ื• ืžืฉืชืžืฉื™ื ื‘ืืคืฉืจื•ืช -a ืฉืชื•ืืจื” ืœืขื™ืœ):

$ pgrep -af helloworld
6408 java -jar ./target/helloworld-<version>-runner.jar

ืื ื• ืžืจื™ืฆื™ื ps ื•-pmap ื›ื“ื™ ืœืžื“ื•ื“ ืืช ื”ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ, ืืš ื›ืขืช ืขื‘ื•ืจ ืชื”ืœื™ืš 6408.

ื”ื ื” ื›ืš:

$ ps -o pid,rss,command -p 6408
  PID   RSS COMMAND
 6408 125732 java -jar ./target/helloworld-quarkus-runner.jar

ื•ื›ื›ื”:

$ pmap -x 6408
6408:   java -jar ./target/helloworld-quarkus-runner.jar
Address           Kbytes     RSS   Dirty Mode  Mapping
00000005d3200000  337408       0       0 rw---   [ anon ]
00000005e7b80000 5046272       0       0 -----   [ anon ]
000000071bb80000  168448   57576   57576 rw---   [ anon ]
0000000726000000 2523136       0       0 -----   [ anon ]
00000007c0000000    2176    2088    2088 rw---   [ anon ]
00000007c0220000 1046400       0       0 -----   [ anon ]
00005645b85d6000       4       4       0 r---- java
00005645b85d7000       4       4       0 r-x-- java
00005645b85d8000       4       0       0 r---- java
00005645b85d9000       4       4       4 r---- java
00005645b85da000       4       4       4 rw--- java
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         12421844  133784  115692

ืื ื• ืžืกืชื›ืœื™ื ืฉื•ื‘ ืขืœ ื”-RSS ื•ืจื•ืื™ื ืฉื—ื‘ื™ืœืช JAR ืฆื•ืจื›ืช ื›-130 ืžื’ื”-ื‘ื™ื™ื˜.

ืงื•ื‘ืฅ ื”ืจืฆื”

ืื ื• ืžืฉื™ืงื™ื ืืช ื”ืžืงื•ืจ (ืจืื” ืกืขื™ืฃ "ื”ืคืขืœืช ืงื•ื‘ืฅ ื”ื”ืคืขืœื” ื”ืžืงื•ืจื™ ืฉืœ helloworld" ื‘ ืคื•ืกื˜ ืงื•ื“ื):

$ ./target/helloworld-<version>-runner

ื‘ื•ืื• ื ืกืชื›ืœ ืฉื•ื‘ ืขืœ ื”-PID ืฉืœื•:

$ pgrep -af helloworld
6948 ./target/helloworld-<version>-runner

ื•ืื– ืื ื• ืžืฉืชืžืฉื™ื ื‘ืžื–ื”ื” ื”ืชื”ืœื™ืš ืฉื ื•ืฆืจ (6948) ื‘ืคืงื•ื“ื•ืช ps ื•-pmap.

ื”ื ื” ื›ืš:

$ ps -o pid,rss,command -p 6948
  PID   RSS COMMAND
 6948 19084 ./target/helloworld-quarkus-runner
ะ˜ ะฒะพั‚ ั‚ะฐะบ:
$ pmap -x 6948
6948:   ./target/helloworld-quarkus-runner
Address           Kbytes     RSS   Dirty Mode  Mapping
0000000000400000      12      12       0 r---- helloworld-quarkus-runner
0000000000403000   10736    8368       0 r-x-- helloworld-quarkus-runner
0000000000e7f000    7812    6144       0 r---- helloworld-quarkus-runner
0000000001620000    2024    1448     308 rw--- helloworld-quarkus-runner
000000000181a000       4       4       4 r---- helloworld-quarkus-runner
000000000181b000      16      16      12 rw--- helloworld-quarkus-runner
0000000001e10000    1740     156     156 rw---   [ anon ]
[...]
ffffffffff600000       4       0       0 r-x--   [ anon ]
---------------- ------- ------- -------
total kB         1456800   20592    2684

ืื ื• ืžืกืชื›ืœื™ื ืขืœ ื”-RSS ื•ืจื•ืื™ื ืฉืงื•ื‘ืฅ ื”ื”ืคืขืœื” ืชื•ืคืก ื›-20 ืžื’ื”-ื‘ื™ื™ื˜ ืฉืœ ื–ื™ื›ืจื•ืŸ.

ื”ืฉื•ื•ืืช ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ

ืื– ืงื™ื‘ืœื ื• ืืช ื”ืžืกืคืจื™ื ื”ื‘ืื™ื ืœืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ:

  • JBoss EAP - 650 MB.
  • ื—ื‘ื™ืœืช JAR โ€“ 130 ืžื’ื”.
  • ืงื•ื‘ืฅ ื‘ืจ ื”ืคืขืœื” โ€“ 20 ืžื’ื”.

ื‘ืจื•ืจ ืฉืงื•ื‘ืฅ ื”ื”ืคืขืœื” ืชื•ืคืก ื”ืจื‘ื” ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ.

ื‘ื•ืื• ื ืกื›ื ืืช ืคื•ืกื˜ื™ื 4 ื•-5

ื‘ืคื•ืกื˜ ื–ื” ื•ื‘ืคื•ืกื˜ื™ื ื”ืงื•ื“ืžื™ื, ื‘ื“ืงื ื• ืืช ื”ืžื•ื“ืจื ื™ื–ืฆื™ื” ืฉืœ ื™ื™ืฉื•ืžื™ Java ื‘ืืžืฆืขื•ืช ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื”ื ืชืžื›ื•ืช ื‘-Quarkus (CDI ื•-Servlet 3), ื›ืžื• ื’ื ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœืคืชื—, ืœื‘ื ื•ืช ื•ืœื”ืคืขื™ืœ ื™ื™ืฉื•ืžื™ื ื›ืืœื”. ื”ืจืื™ื ื• ื›ื™ืฆื“ ืœืืกื•ืฃ ื ืชื•ื ื™ ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ ื›ื“ื™ ืœื”ืขืจื™ืš ืืช ื”ืฉื™ืคื•ืจื™ื ืฉื”ื•ืฉื’ื• ืขืœ ื™ื“ื™ ืฉื“ืจื•ื’ ื›ื–ื”. ื”ืžืืžืจื™ื ื”ืืœื” ืขื•ื–ืจื™ื ืœืš ืœื”ื‘ื™ืŸ ืื™ืš Quarkus ืขื•ื‘ื“ ื•ืœืžื” ื–ื” ืฉื™ืžื•ืฉื™ - ื‘ื™ืŸ ืื ืืชื” ืžื“ื‘ืจ ืขืœ ืชื•ื›ื ื™ืช helloworld ื”ืคืฉื•ื˜ื” ื‘ื“ื•ื’ืžืื•ืช ืฉืœื ื• ืื• ืขืœ ื™ื™ืฉื•ืžื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืžื•ืจื›ื‘ื™ื ืžื”ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื.

ื ื—ื–ื•ืจ ื‘ืขื•ื“ ืฉื‘ื•ืขื™ื™ื ืขื ืคื•ืกื˜ ืื—ืจื•ืŸ ืขืœ ืงื•ื•ืืจืงื•ืก - ื ืชืจืื” ืฉื!

ื‘ืคื•ืกื˜ ื”ืื—ืจื•ืŸ ืฉืœื ื•, ื ืจืื” ื›ื™ืฆื“ ืœืฉืœื‘ ื‘ื™ืŸ AMQ Online ื•-Quarkus ืœื‘ื ื™ื™ืช ืžืขืจื›ืช ื”ื•ื“ืขื•ืช ืžื•ื“ืจื ื™ืช ืžื‘ื•ืกืกืช OpenShift ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืฉืชื™ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื”ื•ื“ืขื•ืช ื—ื“ืฉื•ืช. ืชืžืฉื™ืš ืœืงืจื•ื ืงืฉืจ.

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

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