Kuphatikizika kwachilengedwe ku Quarkus - chifukwa chake kuli kofunikira

Moni nonse! Ili ndi positi yachiwiri pamndandanda wathu wa Quarkus - lero tikambirana za kuphatikizika kwawo.

Kuphatikizika kwachilengedwe ku Quarkus - chifukwa chake kuli kofunikira

quarkus ndi stack ya Java yopangidwira Kubernetes. Ngakhale pali zambiri zoti tichite pano, tachita ntchito yabwino kwambiri pazinthu zambiri, kuphatikiza kukhathamiritsa kwa JVM ndi machitidwe angapo. Chimodzi mwazinthu za Quarkus zomwe zakopa chidwi chowonjezereka kuchokera kwa omanga ndi njira yake yokwanira, yosasunthika yosinthira Java code kukhala mafayilo omwe angathe kuchitidwa pa makina ogwiritsira ntchito (otchedwa "native compilation"), ofanana ndi C ndi C ++, kumene kusonkhanitsa koteroko. kawirikawiri zimachitika kumapeto kwa kamangidwe, kuyesa, ndi kutumiza.

Ndipo ngakhale kuphatikizika kwawoko ndikofunikira, monga momwe tiwonetsera pansipa, ziyenera kudziwidwa kuti Quarkus imayenda bwino pamakina omwe amapezeka kwambiri a Java, OpenJDK Hotspot, chifukwa chakusintha kwa magwiridwe antchito omwe takhazikitsa ponseponse. Chifukwa chake, kuphatikiza kwachilengedwe kuyenera kuonedwa ngati bonasi yowonjezera yomwe ingagwiritsidwe ntchito ngati ikufunika kapena pakufunika. M'malo mwake, Quarkus imadalira kwambiri OpenJDK ikafika pazithunzi zakomweko. Ndipo mawonekedwe a dev, omwe amavomerezedwa mwachikondi ndi opanga, amatsimikizira kuyesedwa kwanthawi yomweyo kwa zosintha chifukwa cha luso lapamwamba la machitidwe amphamvu omwe akhazikitsidwa ku Hotspot. Kuphatikiza apo, popanga zithunzi zakomweko za GraalVM, laibulale ya kalasi ya OpenJDK ndi luso la HotSpot amagwiritsidwa ntchito.

Ndiye n'chifukwa chiyani mukufunikira kusonkhanitsa kwanuko ngati zonse zakonzedwa bwino? Tiyesa kuyankha funso ili pansipa.

Tiyeni tiyambe ndi zodziwikiratu: Red Hat ili ndi chidziwitso chochulukirapo pakukhathamiritsa ma JVM, ma stacks ndi ma frameworks panthawi yopanga polojekiti. JBoss, kuphatikizapo:

Takhala tikulimbana ndi zovuta zogwiritsa ntchito mapulogalamu a Java mumtambo komanso pazida zomwe zili ndi zida (werengani: IoT) kwa zaka zambiri ndipo taphunzira kuchita bwino kwambiri ndi JVM potengera magwiridwe antchito komanso kukhathamiritsa kukumbukira. Monga ena ambiri, takhala tikugwira ntchito yophatikiza mapulogalamu a Java kwa nthawi yayitali G.C.J., ndege, Excelsior JET ndipo ngakhale Dalvik ndipo tikudziwa bwino za ubwino ndi kuipa kwa njirayi (mwachitsanzo, vuto la kusankha pakati pa chilengedwe chonse cha "kumanga kamodzi - kuthamanga kulikonse" komanso kuti mapulogalamu ophatikizidwa ndi ang'onoang'ono ndipo amathamanga mofulumira).

N’chifukwa chiyani kuli kofunika kuganizira zabwino ndi zoipa zimenezi? Chifukwa nthawi zina chiŵerengero chawo chimakhala chotsimikizika:

  • Mwachitsanzo, m'malo opanda seva / oyendetsedwa ndi zochitika komwe ntchito ziyenera kuyamba mu (zovuta kapena zofewa) nthawi yeniyeni kuti mukhale ndi nthawi yoyankha zochitika. Mosiyana ndi mautumiki omwe akhalapo kwa nthawi yayitali, apa nthawi ya kuzizira imayamba kwambiri kumawonjezera nthawi yoyankha pempho. JVM imatengabe nthawi yambiri kuti iyambe, ndipo pamene izi zikhoza kuchepetsedwa nthawi zina ndi njira zoyera za hardware, kusiyana pakati pa sekondi imodzi ndi 5 milliseconds kungakhale kusiyana pakati pa moyo ndi imfa. Inde, apa mutha kusewera pozungulira ndikupanga makina otentha a Java (omwe, mwachitsanzo, tidachita nawo kunyamula OpenWhisk ku Knative), koma izi zokha sizikutsimikizira kuti padzakhala ma JVM okwanira kuti athetse zopempha ngati miyeso yolemetsa. Ndipo kuchokera kuzinthu zachuma, iyi mwina si njira yolondola kwambiri.
  • Komanso, pali mbali ina yomwe nthawi zambiri imatuluka: multitenancy. Ngakhale kuti ma JVM afika pafupi kwambiri ndi machitidwe ogwiritsira ntchito mphamvu zawo, sangathebe kuchita zomwe timazoloŵera mu Linux - njira zodzipatula. Chifukwa chake, kulephera kwa ulusi umodzi kumatha kutsitsa makina onse a Java. Anthu ambiri amayesa kuthana ndi vutoli popereka JVM yosiyana pakugwiritsa ntchito kwa aliyense wogwiritsa ntchito kuti achepetse zotsatira za kulephera. Izi ndizomveka, koma sizikugwirizana bwino ndi makulitsidwe.
  • Kuphatikiza apo, pazogwiritsa ntchito pamtambo, chizindikiro chofunikira ndikuchulukira kwa mautumiki pa wolandila. Kusintha kwa methodology 12 ntchito zinthu, ma microservices ndi Kubernetes amawonjezera kuchuluka kwa makina a Java pa ntchito iliyonse. Ndiko kuti, mbali imodzi, zonsezi zimapereka elasticity ndi kudalirika, koma nthawi yomweyo kugwiritsa ntchito kukumbukira m'munsi mwa mautumiki kumawonjezeka, ndipo zina mwa ndalamazi sizili zofunikira nthawi zonse. Mafayilo omwe amapangidwa mokhazikika amapindula pano chifukwa cha njira zingapo zokhathamiritsa, monga kuchotsera kwa code-death-code, pomwe chithunzi chomaliza chimangophatikiza magawo azinthu (kuphatikiza JDK yokha) yomwe ntchitoyi imagwiritsa ntchito. Chifukwa chake, kuphatikiza kwawo kwa Quarkus kumathandizira kuyika zochitika zapampando kwa wolandirayo popanda kuwononga chitetezo.

M'malo mwake, mikangano yomwe ili pamwambayi ndi yokwanira kale kuti timvetsetse kulungamitsidwa kwa kuphatikizika kwachilengedwe kuchokera kumalingaliro a omwe atenga nawo gawo pa polojekiti ya Quarkus. Komabe, pali chifukwa china, chosakhala chaukadaulo, komanso chofunikira: m'zaka zaposachedwa, ambiri opanga mapulogalamu ndi makampani opanga chitukuko asiya Java m'malo mwa zilankhulo zatsopano zamapulogalamu, akukhulupirira kuti Java, pamodzi ndi ma JVM ake, milu ndi mafelemu, yakhala kwambiri. kukumbukira-njala, kuchedwa kwambiri, etc.

Komabe, chizolowezi chogwiritsa ntchito chida chomwecho kuthetsa vuto lililonse ndi sizili zolondola nthawi zonse. Nthawi zina ndi bwino kungobwerera m'mbuyo ndikuyang'ana zina. Ndipo ngati Quarkus ipangitsa anthu kuyimitsa ndi kuganiza, ndiye kuti ndizabwino ku chilengedwe chonse cha Java. Quarkus ikuyimira malingaliro atsopano amomwe angapangire mapulogalamu abwino kwambiri, kupangitsa Java kukhala yogwirizana ndi zomangamanga zatsopano ngati zopanda seva. Kuphatikiza apo, chifukwa chakuchulukira kwake, Quarkus mwachiyembekezo adzakhala ndi chilengedwe chonse chazowonjezera za Java, kukulitsa kwambiri kuchuluka kwazinthu zomwe zimathandizira kuphatikizika kwachilengedwe pazogwiritsa ntchito kunja kwa bokosilo.

Source: www.habr.com

Kuwonjezera ndemanga