Ib txwm muab tso ua ke hauv Quarkus - vim li cas nws tseem ceeb

Nyob zoo sawv daws! Qhov no yog qhov thib ob tshaj tawm nyob rau hauv peb series ntawm Quarkus - hnub no peb mam li tham txog haiv neeg muab tso ua ke.

Ib txwm muab tso ua ke hauv Quarkus - vim li cas nws tseem ceeb

quarkus yog Java pawg tailored rau Kubernetes. Txawm hais tias muaj ntau yam ntxiv los ua ntawm no, peb tau ua ntau txoj haujlwm zoo ntawm ntau yam, suav nrog kev ua kom zoo rau JVM thiab ntau lub hauv paus. Ib qho ntawm cov yam ntxwv ntawm Quarkus uas tau nyiam kev txaus siab los ntawm cov neeg tsim khoom yog nws txoj hauv kev zoo, tsis sib haum xeeb los hloov Java code rau hauv cov ntaub ntawv ua tiav rau ib qho kev khiav hauj lwm tshwj xeeb (hu ua "native compilation"), zoo ib yam li C thiab C ++, qhov twg xws li muab tso ua ke. feem ntau tshwm sim thaum kawg ntawm lub voj voog ntawm kev tsim, kev sim, thiab kev xa tawm.

Thiab txawm hais tias ib txwm muab tso ua ke yog ib qho tseem ceeb, raws li peb yuav qhia hauv qab no, nws yuav tsum tau muab sau tseg tias Quarkus khiav zoo tiag tiag ntawm Java tshuab feem ntau, OpenJDK Hotspot, ua tsaug rau kev txhim kho kev ua tau zoo uas peb tau siv thoob plaws hauv pawg. Yog li ntawd, ib txwm muab tso ua ke yuav tsum raug xam tias yog ib qho nyiaj ntxiv uas tuaj yeem siv tau raws li qhov xav tau lossis tsim nyog. Qhov tseeb, Quarkus tso siab rau OpenJDK thaum nws los txog rau cov duab ib txwm muaj. Thiab hom dev, txais tos los ntawm cov neeg tsim khoom, ua kom yuav luag tam sim ntawm kev sim ntawm cov kev hloov pauv vim muaj peev xwm ua tau zoo ntawm kev ua tiav cov cai hauv Hotspot. Tsis tas li ntawd, thaum tsim cov duab GraalVM haiv neeg, OpenJDK chav tsev qiv ntawv thiab HotSpot muaj peev xwm siv.

Yog li vim li cas koj thiaj li xav tau ib txwm muab tso ua ke yog tias txhua yam twb tau ua kom zoo tag nrho? Peb yuav sim teb cov lus nug hauv qab no.

Cia peb pib nrog qhov pom tseeb: Red Hat muaj cov kev paub dav dav uas txhim kho JVMs, pawg thiab cov phiaj xwm thaum lub sijhawm tsim txoj haujlwm JBoss, suav nrog:

  • Thawj daim ntawv thov server ua haujlwm hauv huab ntawm lub platform Red Hat OpenShift.
  • Thawj daim ntawv thov server rau kev khiav ntawm cov khoos phis tawj Plug PC.
  • Thawj daim ntawv thov server ua haujlwm Raspberry Pi.
  • Ntau qhov project khiav ntawm cov khoom siv Android.

Peb tau ua haujlwm nrog cov kev cov nyom ntawm kev khiav Java daim ntawv thov hauv huab thiab ntawm cov cuab yeej siv tau txwv (nyeem: IoT) tau ntau xyoo thiab tau kawm kom tau txais txiaj ntsig zoo tshaj plaws ntawm JVM hais txog kev ua tau zoo thiab kev ua kom zoo dua qub. Zoo li ntau lwm tus, peb tau ua hauj lwm nrog haiv neeg muab tso ua ke ntawm Java daim ntaub ntawv rau lub sij hawm ntev los ntawm G.C.J., dav hlau, Excelsior JET thiab txawm Dalvik thiab peb yeej paub zoo txog qhov zoo thiab qhov tsis zoo ntawm txoj hauv kev no (piv txwv li, qhov teeb meem ntawm kev xaiv ntawm lub universality ntawm "tsim ib zaug - khiav-nyob qhov twg" thiab qhov tseeb hais tias compiled daim ntaub ntawv yog me me thiab khiav ceev).

Vim li cas nws tseem ceeb heev uas yuav tsum xav txog cov txiaj ntsig thiab qhov tsis zoo no? Vim tias qee qhov xwm txheej lawv qhov piv tau txiav txim siab:

  • Piv txwv li, nyob rau hauv serverless / event-driven ib puag ncig qhov twg cov kev pabcuam tsuas yog yuav tsum pib nyob rau hauv (nyuaj lossis mos) lub sijhawm tiag tiag thiaj li muaj sijhawm los teb rau cov xwm txheej. Tsis zoo li cov kev pabcuam ua haujlwm ntev ntev, ntawm no lub sijhawm ntawm qhov pib txias heev ua rau lub sijhawm teb rau qhov kev thov. JVM tseem siv sijhawm ntau lub sijhawm los pib, thiab thaum qhov no tuaj yeem txo qis hauv qee kis los ntawm cov txheej txheem kho vajtse ntshiab, qhov sib txawv ntawm ib thib ob thiab 5 milliseconds tuaj yeem yog qhov sib txawv ntawm lub neej thiab kev tuag. Yog lawm, ntawm no koj tuaj yeem ua si ncig nrog tsim kom muaj qhov kub ntawm Java tshuab (uas, piv txwv li, peb tau ua nrog porting OpenWhisk rau Knative), tab sis qhov no hauv nws tus kheej tsis tau lees tias yuav muaj JVMs txaus los ua cov ntawv thov raws li qhov ntsuas qhov ntsuas. Thiab los ntawm qhov kev xav ntawm kev lag luam, qhov no tej zaum tsis yog qhov kev xaiv zoo tshaj plaws.
  • Tsis tas li ntawd, muaj lwm yam uas feem ntau tshwm sim: multitenancy. Txawm hais tias muaj tseeb tias JVMs tau los ze heev rau kev khiav hauj lwm hauv lawv lub peev xwm, lawv tseem tsis muaj peev xwm ua qhov peb tau ua dhau los hauv Linux - cais cov txheej txheem. Yog li ntawd, qhov ua tsis tiav ntawm ib txoj xov tuaj yeem nqa tag nrho Java tshuab. Ntau tus neeg sim mus ncig qhov teeb meem no los ntawm kev muab JVM cais rau txhua tus neeg siv daim ntawv thov txhawm rau txo qhov tshwm sim ntawm qhov ua tsis tiav. Qhov no yog qhov laj thawj heev, tab sis tsis haum zoo nrog kev ntsuas.
  • Tsis tas li ntawd, rau cov kev siv huab-oriented, qhov taw qhia tseem ceeb yog qhov ceev ntawm cov kev pabcuam ntawm tus tswv tsev. Hloov mus rau methodology 12 daim ntawv thov yam, microservices thiab Kubernetes nce tus naj npawb ntawm Java tshuab ib daim ntawv thov. Ntawd yog, ntawm ib sab, tag nrho cov no muab elasticity thiab kev ntseeg tau, tab sis tib lub sij hawm qhov kev siv ntawm lub hauv paus nco nyob rau hauv cov nqe lus ntawm kev pab cuam kuj nce, thiab ib co ntawm cov nqi no tsis yog ib txwm nruj me ntsis tsim nyog. Statically compiled executable files tau txais txiaj ntsig ntawm no vim muaj ntau yam kev ua kom zoo dua qub, xws li kev tshem tawm cov lej qis qis, thaum cov duab kawg suav nrog tsuas yog cov ntu ntawm lub moj khaum (xws li JDK nws tus kheej) uas qhov kev pabcuam siv tiag tiag. Yog li ntawd, Quarkus ib txwm muab tso ua ke pab kom ntom ntom qhov chaw pabcuam ntawm tus tswv tsev yam tsis muaj kev cuam tshuam txog kev nyab xeeb.

Qhov tseeb, cov lus sib cav saum toj no twb txaus los nkag siab txog qhov kev ncaj ncees ntawm haiv neeg muab tso ua ke los ntawm qhov pom ntawm Quarkus cov neeg koom nrog qhov project. Txawm li cas los xij, muaj lwm qhov, tsis yog kev siv tshuab, tab sis kuj tseem ceeb vim li cas: nyob rau xyoo tas los no, ntau tus programmers thiab cov tuam txhab tsim kho tau tso tseg Java hauv kev pom zoo ntawm cov lus programming tshiab, ntseeg tias Java, nrog rau nws cov JVMs, pawg thiab cov txheej txheem, tau dhau los ua ib yam nkaus. nco-tshaib plab, qeeb dhau, thiab lwm yam.

Txawm li cas los xij, tus cwj pwm ntawm kev siv tib lub cuab yeej los daws txhua qhov teeb meem yog yeej tsis yog lawm. Qee lub sij hawm nws yog qhov zoo dua los ua ib kauj ruam rov qab thiab nrhiav lwm yam. Thiab yog Quarkus ua rau tib neeg nres thiab xav, ces qhov ntawd yog qhov zoo rau tag nrho Java ecosystem. Quarkus sawv cev rau qhov kev pom tshiab ntawm yuav ua li cas los tsim cov ntawv siv tau zoo dua, ua rau Java muaj feem cuam tshuam rau cov ntawv thov tshiab xws li serverless. Tsis tas li ntawd, vim nws qhov kev nthuav dav, Quarkus yuav cia siab tias yuav muaj tag nrho cov ecosystem ntawm Java txuas ntxiv, ua kom muaj ntau cov qauv uas yuav txhawb nqa cov neeg sau ua ke hauv cov ntawv thov tawm ntawm lub thawv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib