Yuav ua li cas Quarkus muab qhov tseem ceeb thiab kev ua haujlwm rov ua haujlwm

Xyoo no peb npaj siab tsim cov ntsiab lus ntim khoom, Cloud-Native Java ΠΈ Kubernetes. Ib qho laj thawj txuas ntxiv ntawm cov ncauj lus no yuav yog ib zaj dab neeg hais txog Quarkus lub moj khaum, twb xav txog ntawm Habre. Hnub no tsab xov xwm tsis tshua muaj hais txog tus tsim ntawm "subatomic superfast Java" thiab ntau ntxiv txog cov lus cog tseg uas Quarkus coj mus rau Enterprise.

Yuav ua li cas Quarkus muab qhov tseem ceeb thiab kev ua haujlwm rov ua haujlwm

Java thiab JVM tseem nrov heev, tab sis thaum ua haujlwm nrog serverless technologies thiab huab-native microservices, Java thiab lwm yam lus JVM siv tsawg thiab tsawg vim lawv siv ntau qhov chaw nco thiab qeeb dhau, ua rau lawv. tsis zoo rau kev siv nrog cov ntim khoom luv luv. Luckily, qhov xwm txheej no tam sim no pib hloov ua tsaug rau Quarkus.

Superfast subatomic Java tau mus txog qib tshiab!

42 kev tshaj tawm, 8 lub hlis ntawm kev ua haujlwm hauv zej zog thiab 177 tus tsim tawm zoo kawg nkaus - qhov tshwm sim ntawm nws tag nrho yog qhov tso tawm thaum Lub Kaum Ib Hlis 2019 Quarkus 1.0, ib qho kev tso tawm uas yog ib qho tseem ceeb hauv kev txhim kho ntawm qhov project thiab muaj ntau yam txias thiab muaj peev xwm (koj tuaj yeem nyeem ntxiv txog lawv hauv tshaj tawm).

Niaj hnub no peb mam li qhia koj yuav ua li cas Quarkus muab cov qauv tsim nyog thiab cov qauv ua haujlwm ua haujlwm rau hauv ib qho kev ua haujlwm zoo. Peb mam li pib nrog keeb kwm luv luv thiab tom qab ntawd nkag mus rau hauv kev nthuav dav txog Quarkus 'reactive core dualism yog dab tsi thiab yuav ua li cas Java-Cov neeg tsim khoom tuaj yeem siv cov txiaj ntsig no.

Microservices, kev tshwm sim tsav architectures ΠΈ serverless-functions - tag nrho cov no yog, raws li lawv hais, nyob rau niaj hnub no. Tsis ntev los no, kev tsim cov huab-centric architectures tau ua yooj yim dua thiab siv tau ntau dua, tab sis cov teeb meem tseem nyob - tshwj xeeb tshaj yog rau Java developers. Piv txwv li, nyob rau hauv cov ntaub ntawv ntawm serverless functions thiab microservices, muaj ib qho kev xav tau ceev kom txo tau lub sij hawm pib, txo kev nco noj, thiab tseem ua rau lawv txoj kev loj hlob yooj yim dua thiab txaus siab rau. Java tau ua ntau yam kev txhim kho nyob rau hauv xyoo tas los no, xws li txhim kho ergonomics functionality rau ntim thiab lwm yam. Txawm li cas los xij, kom Java ua haujlwm kom zoo hauv lub thawv yog tseem nyuaj. Yog li peb mam li pib los ntawm kev saib qee qhov kev nyuaj ntawm Java, uas yog qhov mob tshwj xeeb thaum tsim cov thawv-taw qhia txog Java daim ntawv thov.

Ua ntej, cia peb saib keeb kwm.

Yuav ua li cas Quarkus muab qhov tseem ceeb thiab kev ua haujlwm rov ua haujlwm

Cov kwj thiab cov thawv ntim khoom

Pib nrog version 8u131, Java pib ntau dua lossis tsawg dua cov ntim khoom vim kev txhim kho hauv ergonomics functionality. Tshwj xeeb, JVM tam sim no paub tias muaj pes tsawg tus processor cores nws tab tom khiav thiab tuaj yeem teeb tsa cov xov pas dej - feem ntau diav rawg / koom nrog pas dej - raws li. Tau kawg, qhov no zoo heev, tab sis cia peb hais tias peb muaj ib txwm siv lub vev xaib uas siv HTTP servlets thiab khiav hauv Tomcat, Jetty, thiab lwm yam. Raws li qhov tshwm sim, daim ntawv thov no yuav muab txhua qhov kev thov sib cais thiab tso cai rau nws los thaiv cov xov no thaum tos I / O cov haujlwm, piv txwv li, thaum nkag mus rau hauv cov ntaub ntawv, cov ntaub ntawv lossis lwm yam kev pabcuam. Ntawd yog, qhov loj ntawm daim ntawv thov no tsis yog nyob ntawm tus naj npawb ntawm cov cores muaj, tab sis ntawm tus naj npawb ntawm kev thov ib txhij. Tsis tas li ntawd, qhov no txhais tau hais tias quotas lossis kev txwv hauv Kubernetes ntawm tus naj npawb ntawm cov cores yuav tsis muaj kev pab ntau ntawm no, thiab qhov teeb meem yuav xaus rau hauv throttling.

Nco qaug zog

Cov xov yog nco. Thiab nyob rau hauv lub thawv ntim cov kev txwv tsis yog ib qho panacea. Tsuas yog pib nce tus naj npawb ntawm daim ntawv thov thiab xov, thiab sai dua lossis tom qab koj yuav ntsib qhov kev nce ntxiv hauv kev hloov zaus thiab, vim li ntawd, kev ua haujlwm tsis zoo. Tsis tas li ntawd, yog tias koj daim ntawv thov siv cov txheej txheem microservice ib txwm siv, lossis txuas mus rau cov ntaub ntawv, lossis siv caching, lossis lwm yam siv lub cim xeeb, koj xav tau lub cuab yeej uas tso cai rau koj saib hauv JVM thiab saib seb nws tswj kev nco tsis tua nws. JVM nws tus kheej (piv txwv li, XX: +UseCGroupMemoryLimitForHeap). Thiab txawm hais tias, txij li Java 9, JVM tau kawm lees txais cgroups thiab hloov raws li, kev khaws cia thiab tswj kev nco tseem yog qhov nyuaj heev.

Quotas thiab txwv

Java 11 qhia txog kev txhawb nqa rau CPU quotas (xws li PreferContainerQuotaForCPUCount). Kubernetes tseem muaj kev txhawb nqa rau kev txwv thiab quotas. Yog lawm, txhua yam no ua rau muaj kev nkag siab zoo, tab sis yog tias daim ntawv thov dua dhau qhov kev faib tawm, peb rov xaus nrog qhov loj - ib yam li cov ntaub ntawv Java ib txwm siv - txiav txim siab los ntawm tus lej ntawm cov cores thiab nrog kev faib cov xov sib cais rau txhua qhov. thov, ces muaj me ntsis kev nkag siab nyob rau hauv tag nrho cov no.
Tsis tas li ntawd, yog tias koj siv quotas thiab txwv lossis qhov ntsuas tawm ntawm lub platform hauv qab Kubernetes, qhov teeb meem kuj tsis daws nws tus kheej. Peb tsuas yog siv nyiaj ntau dua los daws qhov teeb meem qub lossis xaus kev siv nyiaj ntau dhau. Thiab yog hais tias nws yog ib tug high-load system nyob rau hauv ib tug pej xeem huab huab, peb yuav luag tag mus siv ntau tshaj li qhov peb xav tau tiag tiag.

Thiab yuav ua li cas nrog tag nrho cov no?

Txhawm rau muab nws yooj yim, siv asynchronous thiab tsis thaiv I / O cov tsev qiv ntawv thiab cov qauv zoo li Netty, Vert.x los yog Akka. Lawv yog qhov zoo dua rau kev ua haujlwm hauv cov thawv ntim khoom vim lawv cov xwm txheej reactive. Ua tsaug rau qhov tsis thaiv I / O, tib cov xov tuaj yeem ua tiav ntau qhov kev thov ib txhij. Thaum ib qho kev thov tseem tos rau I / O cov txiaj ntsig, cov xov ua tiav nws raug tso tawm thiab coj los ntawm lwm qhov kev thov. Thiab thaum I/O cov txiaj ntsig thaum kawg tuaj txog, kev ua tiav ntawm thawj qhov kev thov txuas ntxiv mus. Los ntawm kev sib cuam tshuam ntawm kev thov hauv tib lub xov, koj tuaj yeem txo tag nrho cov xov tooj thiab txo cov peev txheej siv rau kev thov.

Nrog tsis thaiv I / O, tus naj npawb ntawm cov cores dhau los ua qhov tseem ceeb vim tias nws txiav txim siab tus naj npawb ntawm I / O threads uas tuaj yeem ua rau tib lub sijhawm. Thaum siv kom raug, qhov no tso cai rau koj kom faib cov khoom nruab nrab ntawm cov cores thiab ua haujlwm ntau dua nrog cov peev txheej tsawg.

Yuav ua li cas, yog tag nrho?

Tsis yog, muaj lwm yam. Reactive programming pab ua kom zoo siv cov peev txheej, tab sis kuj tuaj ntawm tus nqi. Tshwj xeeb, txoj cai yuav tsum tau sau dua tshiab raws li cov hauv paus ntsiab lus ntawm kev tsis thaiv thiab tsis txhob thaiv I / O xov. Thiab qhov no yog tus qauv sib txawv kiag li ntawm kev txhim kho thiab kev ua tiav. Thiab txawm hais tias muaj ntau lub tsev qiv ntawv muaj txiaj ntsig ntawm no, nws tseem yog qhov hloov pauv ntawm txoj kev xav li niaj zaus.

Ua ntej, koj yuav tsum kawm yuav ua li cas sau code uas khiav asynchronously. Thaum koj pib siv tsis thaiv I / O, koj yuav tsum qhia meej meej tias yuav tshwm sim li cas thaum tau txais cov lus teb rau qhov kev thov. Tsuas thaiv thiab tos yuav tsis ua haujlwm ntxiv lawm. Hloov chaw, koj tuaj yeem hla callbacks, siv reactive programming lossis txuas ntxiv. Tab sis qhov tsis yog tag nrho: kom siv tsis thaiv I / O, koj xav tau ob qho tib si tsis thaiv cov servers thiab cov neeg siv khoom, nyiam txhua qhov chaw. Nyob rau hauv cov ntaub ntawv ntawm HTTP, txhua yam yog yooj yim, tab sis kuj muaj databases, cov ntaub ntawv systems, thiab ntau ntxiv.

Thiab txawm hais tias tag nrho qhov kawg-rau-kawg reactivity maximizes efficiency, xws li kev hloov yuav nyuaj rau plab hauv kev xyaum. Yog li ntawd, lub peev xwm los ua ke reactive thiab imperative code yuav tsum tau ua ntej thiaj li yuav:

  1. Siv cov peev txheej zoo hauv cov chaw thauj khoom feem ntau ntawm cov software system;
  2. Siv cov cai yooj yim style hauv nws qhov seem seem.

Qhia Quarkus

Qhov tseeb, qhov no yog qhov tseem ceeb ntawm Quarkus - los ua ke cov qauv ua haujlwm thiab qhov tseem ceeb hauv ib puag ncig kev ua haujlwm.

Quarkus yog raws li Vert.x thiab Netty, nrog ntau yam ntawm cov txheej txheem rov ua haujlwm thiab txuas ntxiv rau sab saum toj los pab tus tsim tawm. Quarkus yog tsim los rau lub tsev tsis yog HTTP microservices nkaus xwb, tab sis kuj muaj kev tshwm sim-tsav architectures. Vim nws qhov xwm txheej, nws ua haujlwm zoo heev nrog kev xa xov (Apache Kafka, AMQP, thiab lwm yam).

Qhov ua kom yuam kev yog yuav ua li cas siv tib lub cav reactive rau ob qho tib si tseem ceeb thiab reactive code.

Yuav ua li cas Quarkus muab qhov tseem ceeb thiab kev ua haujlwm rov ua haujlwm

Quarkus ua qhov no ci ntsa iab. Qhov kev xaiv ntawm qhov tseem ceeb thiab reactive yog qhov pom tseeb - siv cov tshuaj reactive rau ob qho tib si. Qhov nws pab tau tiag tiag yog ceev, tsis thaiv cov cai uas ua haujlwm yuav luag txhua yam uas dhau los ntawm qhov xwm txheej-voj xov, aka IO xov. Tab sis yog tias koj muaj classic REST los yog cov neeg siv-sab daim ntawv thov, Quarkus muaj ib qho tseem ceeb programming qauv ntawm kev npaj. Piv txwv li, HTTP kev txhawb nqa hauv Quarkus yog raws li kev siv lub tshuab tsis thaiv thiab rov ua haujlwm (Eclipse Vert.x thiab Netty). Txhua qhov kev thov HTTP tau txais los ntawm koj daim ntawv thov yog thawj zaug dhau los ntawm qhov kev tshwm sim voj (IO Xov) thiab tom qab ntawd xa mus rau ib feem ntawm cov cai uas tswj hwm qhov kev thov. Nyob ntawm qhov chaw, qhov kev thov kev tswj hwm tus lej tuaj yeem raug hu hauv ib lub xov tooj sib cais (lub xov tooj hu ua tus neeg ua haujlwm xov, siv nyob rau hauv rooj plaub ntawm servlets thiab Jax-RS) lossis siv qhov I / O xov (reactive route).

Yuav ua li cas Quarkus muab qhov tseem ceeb thiab kev ua haujlwm rov ua haujlwm

Kev xa xov txuas txuas siv cov neeg siv tsis thaiv cov neeg siv khiav saum lub cav Vert.x. Yog li ntawd, koj tuaj yeem xa, tau txais thiab ua cov lus zoo los ntawm kev xa xov nruab nrab nruab nrab.

Rau ntawm qhov chaw Quarkus.io Nov yog qee qhov kev qhia zoo los pab koj pib nrog Quarkus:

Peb kuj tau tsim cov kev qhia siv tes hauv online los qhia koj ntau yam ntawm kev ua haujlwm reactive hauv browser nkaus xwb, tsis muaj IDE xav tau, thiab tsis tas yuav siv computer. Koj tuaj yeem nrhiav tau cov lus qhia no no.

Cov Khoom Siv Muaj Txiaj Ntsig

10 zaj lus qhia video ntawm Quarkus kom paub txog lub ntsiab lus

Raws li lawv hais hauv lub vev xaib Quarkus.io, quarkus - yog Kubernetes-oriented Java pawg, tailored rau GraalVM thiab OpenJDK HotSpot thiab sib sau ua ke los ntawm qhov zoo tshaj plaws Java tsev qiv ntawv thiab cov qauv.

Txhawm rau pab koj nkag siab lub ntsiab lus, peb tau xaiv 10 cov yeeb yaj kiab qhia uas hais txog ntau yam ntawm Quarkus thiab cov piv txwv ntawm nws siv:

1. Qhia Quarkus: Lub Xeem Tom ntej Java Framework rau Kubernetes

Los ntawm Thomas Qvarnstrom thiab Jason Greene
Lub hom phiaj ntawm Quarkus qhov project yog los tsim Java platform rau Kubernetes thiab serverless ib puag ncig, thiab los ua ke cov qauv kev ua haujlwm thiab qhov tseem ceeb hauv kev ua haujlwm ib puag ncig kom cov neeg tsim khoom tuaj yeem hloov pauv lawv txoj hauv kev thaum ua haujlwm nrog ntau yam ntawm cov ntawv thov sib txawv. Xav paub ntau ntxiv hauv cov lus qhia hauv qab no.

2. Quarkus: Superfast Subatomic Java

Los ntawm: Burr Sutter
Qhov kev qhia video no los ntawm DevNation Live qhia yuav ua li cas siv Quarkus txhawm rau txhim kho kev lag luam Java daim ntawv thov, APIs, microservices, thiab serverless ua haujlwm hauv Kubernetes / OpenShift ib puag ncig, ua rau lawv me dua, sai dua, thiab muaj peev xwm ua tau ntau dua.

3. Quarkus thiab GraalVM: accelerating Hibernate rau super speeds thiab shrinking nws mus rau subatomic qhov ntau thiab tsawg

Sau: Sanne Grinovero
Los ntawm kev nthuav qhia koj yuav kawm paub tias Quarkus tuaj ua li cas, nws ua haujlwm li cas, thiab nws tso cai rau koj los ua cov tsev qiv ntawv nyuaj, zoo li Hibernate ORM, sib xws nrog haiv neeg GraalVM cov duab.

4. Kawm los tsim cov ntawv thov tsis muaj server

Sau: Martin Luther
Cov vis dis aus hauv qab no qhia yuav ua li cas los tsim ib daim ntawv thov Java yooj yim siv Quarkus thiab xa nws ua daim ntawv thov serverless ntawm Knative.

5. Quarkus: Muaj kev lom zem coding

Sau: Edson Yanaga
Daim vis dis aus los tsim koj thawj qhov project Quarkus, tso cai rau koj nkag siab tias vim li cas Quarkus thiaj li yeej lub siab ntawm cov neeg tsim khoom.

6. Java thiab ntim khoom - lawv lub neej yav tom ntej ua ke yuav zoo li cas

Tshaj tawm los ntawm Mark Little
Qhov kev nthuav qhia no qhia txog keeb kwm ntawm Java thiab piav qhia vim li cas Quarkus yog lub neej yav tom ntej ntawm Java.

7. Quarkus: Superfast Subatomic Java

Sau: Dimitris Andreadis
Lub ntsiab lus ntawm qhov zoo ntawm Quarkus uas tau txais kev lees paub los ntawm cov neeg tsim khoom: kev yooj yim, ultra-high speeds, cov tsev qiv ntawv zoo tshaj plaws thiab cov qauv.

8. Quarkus thiab subatomic foob pob ua ntxaij tshuab

Sau: Clement Escoffier
Los ntawm kev koom ua ke nrog GraalVM, Quarkus muab kev txhim kho nrawm nrawm thiab ib puag ncig subatomic runtime. Tus sau tham txog qhov reactive sab ntawm Quarkus thiab yuav ua li cas siv nws los tsim reactive thiab streaming daim ntawv thov.

9. Quarkus thiab daim ntawv thov kev loj hlob sai hauv dab noj hnub MicroProfile

Sau: John Clingan
Los ntawm kev sib txuas Eclipse MicroProfile thiab Quarkus, cov neeg tsim khoom tuaj yeem tsim cov ntawv thov microProfile tag nrho uas tso tawm hauv kaum tawm milliseconds. Cov vis dis aus nkag mus rau hauv cov ncauj lus kom ntxaws txog yuav ua li cas code lub thawv MicroProfile daim ntawv thov rau kev xa tawm ntawm Kubernetes platform.

10. Java, "Turbo" version

Sau: Marcus Biel
Tus sau qhia yuav ua li cas siv Quarkus los tsim super-me me, super-ceev Java ntim uas ua rau muaj kev tawg tiag tiag, tshwj xeeb tshaj yog nyob rau hauv serverless ib puag ncig.



Tau qhov twg los: www.hab.com

Ntxiv ib saib