Kedu ka Quarkus si ejikọta mmemme dị mkpa yana mmeghachi omume

N'afọ a, anyị na-eme atụmatụ ịzụlite akpa gburugburu, Igwe ojii-Native Java и Kubernetes. Ọganiihu ezi uche dị na isiokwu ndị a ga-abụ akụkọ gbasara usoro Quarkus, ugbua tụlee na Habre. Edemede taa pere mpe maka imewe “subatomic superfast Java” yana ihe ndị ọzọ gbasara nkwa Quarkus na-eweta na Enterprise.

Kedu ka Quarkus si ejikọta mmemme dị mkpa yana mmeghachi omume

Java na JVM ka na-ewu ewu nke ukwuu, ma mgbe ha na-arụ ọrụ na teknụzụ na-enweghị ihe nkesa na microservices nke igwe ojii, Java na asụsụ JVM ndị ọzọ na-eji obere ntakịrị n'ihi na ha na-eburu ohere nchekwa buru ibu ma na-adị ngwa ngwa ibu, na-eme ka ha dị obere. emezighi ezi maka ojiji na obere akpa. N'ụzọ dị mma, ọnọdụ a na-amalite ugbu a ịgbanwe ekele Quarkus.

Superfast subatomic Java eruola ọkwa ọhụrụ!

Mwepụta 42, ọnwa 8 nke ọrụ obodo na ndị mmepe 177 dị ịtụnanya - nsonaazụ ya niile bụ mwepụta na Nọvemba 2019 Kwokọs 1.0, Ntọhapụ nke na-egosi ihe dị mkpa dị mkpa na mmepe nke ọrụ ahụ ma na-enye ọtụtụ atụmatụ dị mma na ike (ị nwere ike ịgụkwu banyere ha na ọkwa).

Taa, anyị ga-egosi gị ka Quarkus si ejikọta ụdị mmemme dị mkpa na nke na-emeghachi omume n'ime otu isi na-emeghachi omume. Anyị ga-eji obere akụkọ bido wee banye n'ime nkọwa gbasara ihe Quarkus' reactive core dualism bụ yana otu esi eme ya. Java-Ndị mmepe nwere ike iji uru ndị a.

Microservices, omume chụpụrụ architectures и nhazi-ọrụ - ihe a niile bụ, dị ka ha na-ekwu, na ịrị elu taa. N'oge na-adịbeghị anya, mmepụta nke igwe-centric architectures aghọwo ihe dị mfe ma dị mfe ịnweta, ma nsogbu ka dị - karịsịa maka ndị mmepe Java. Dịka ọmụmaatụ, n'ihe gbasara ọrụ na-enweghị ihe nkesa na microservices, ọ dị mkpa ngwa ngwa iji belata oge mmalite, belata oriri ncheta, ma ka na-eme ka mmepe ha dịkwuo mfe ma na-atọ ụtọ. Java emeela ọtụtụ ndozi n'ime afọ ndị na-adịbeghị anya, dị ka arụ ọrụ ergonomics ka mma maka akpa na ihe ndị ọzọ. Agbanyeghị, ịnweta Java ka ọ rụọ ọrụ nke ọma n'ime akpa ka na-esiri ike. Yabụ na anyị ga-amalite site n'ịlele ụfọdụ ihe mgbagwoju anya nke Java, nke dị oke egwu mgbe ị na-emepụta ngwa Java dabere na akpa.

Nke mbụ, ka anyị leba anya n’akụkọ ihe mere eme.

Kedu ka Quarkus si ejikọta mmemme dị mkpa yana mmeghachi omume

Iyi na akpa

Malite na ụdị 8u131, Java malitere ọtụtụ ma ọ bụ obere arịa nkwado n'ihi nkwalite na ọrụ ergonomics. Karịsịa, JVM maara ugbu a ọtụtụ cores processor ọ na-agba na ya nwere ike hazie ọdọ mmiri eri — nke na-abụkarị ndụdụ / isonye ọdọ mmiri — dị ka ya. N'ezie, nke a dị mma, mana ka anyị kwuo na anyị nwere ngwa weebụ omenala nke na-eji HTTP servlets ma na-agba ọsọ na Tomcat, Jetty, wdg. N'ihi ya, ngwa a ga-enye onye ọ bụla arịrịọ eri dị iche iche ma nye ya ohere igbochi eriri a mgbe ọ na-eche ọrụ I/O, dịka ọmụmaatụ, mgbe ị na-abanye na nchekwa data, faịlụ ma ọ bụ ọrụ ndị ọzọ. Ya bụ, nha nke ngwa dị otú ahụ anaghị adabere na ọnụ ọgụgụ nke cores dị, ma na ọnụ ọgụgụ nke arịrịọ n'otu oge. Tụkwasị na nke a, nke a pụtara na oke ma ọ bụ njedebe na Kubernetes na ọnụ ọgụgụ nke cores agaghị enyere aka ebe a, okwu ahụ ga-emecha kwụsị na nkwụsị.

Ike ncheta

Eriri bụ ebe nchekwa. Na njedebe ebe nchekwa intra-container abụghịkwa panacea. Naanị malite ịba ụba nke ngwa na eri, n'oge na-adịghị anya, ị ga-ezute mmụba dị oke egwu na ugboro ugboro na, n'ihi ya, mmebi arụmọrụ. Ọzọkwa, ọ bụrụ na ngwa gị na-eji usoro microservice omenala, ma ọ bụ jikọọ na nchekwa data, ma ọ bụ na-eji caching, ma ọ bụ na-eji ebe nchekwa ọzọ, ị ga-achọ ngwá ọrụ na-enye gị ohere ileba anya n'ime JVM wee hụ ka o si ejikwa ebe nchekwa na-enweghị igbu ya. JVM n'onwe ya (dịka ọmụmaatụ, XX:+ UseCGroupMemoryLimitForHeap). Ma n'agbanyeghị, kemgbe Java 9, JVM amụtala ịnakwere otu dị iche iche ma gbanwee ya, idobe na ijikwa ebe nchekwa ka bụ ihe dị mgbagwoju anya.

Oke na oke

Java 11 webatara nkwado maka oke CPU (dị ka PreferContainerQuotaForCPUCount). Kubernetes na-enyekwa nkwado maka oke na oke. Ee, nke a niile nwere ezi uche, ma ọ bụrụ na ngwa ọzọ gafere oke ekenyela, anyị na-ejedebe na nha ọzọ - dị ka ọ dị na ngwa Java omenala - kpebisiri ike site na ọnụ ọgụgụ nke cores na na oke nke eriri dị iche iche maka nke ọ bụla. Arịrịọ, mgbe ahụ enwere ntakịrị uche na ihe a niile.
Na mgbakwunye, ọ bụrụ na ị na-eji oke na oke ma ọ bụ ọrụ nrụpụta nke ikpo okwu dị n'okpuru Kubernetes, nsogbu ahụ anaghị edozi onwe ya. Anyị na-emefu ego karịa iji dozie nsogbu mbụ ahụ ma ọ bụ mefuo oke. Ma ọ bụrụ na ọ bụ sistemụ dị elu na igwe ojii ọha, ọ fọrọ nke nta ka ọ bụrụ na anyị ga-ejedebe iji akụrụngwa karịa ka anyị chọrọ.

Gịnịkwa ka a ga-eme ihe a niile?

Iji tinye ya n'ụzọ dị mfe, jiri asynchronous na ndị na-adịghị egbochi I/O ọba akwụkwọ na frameworks dị ka Netty, Vert.x ma ọ bụ Aka. Ha kacha mma maka ịrụ ọrụ n'ime akpa n'ihi ọdịdị na-emegharị ahụ. Ekele maka I/O anaghị egbochi, otu eri ahụ nwere ike hazie arịrịọ n'otu oge. Ebe otu arịrịọ na-echere rịzọlt I/O, a na-ewepụta nhazi nke eri ahụ wee weghara ya site na arịrịọ ọzọ. Ma mgbe nsonaazụ I/O mechara bịarute, nhazi nke arịrịọ mbụ na-aga n'ihu. Site na nhazi nke arịrịọ n'ime otu eri ahụ, ị ​​nwere ike belata ọnụ ọgụgụ nke eri ma belata oriri akụrụngwa maka nhazi arịrịọ.

Na-adịghị egbochi I/O, ọnụ ọgụgụ nke cores na-aghọ isi paramita n'ihi na ọ na-ekpebi ọnụ ọgụgụ nke I/O eri nke nwere ike igbu n'otu n'otu. Mgbe ejiri ya mee ihe n'ụzọ ziri ezi, nke a na-enye gị ohere ikesa nke ọma ibu n'etiti cores ma jikwaa ibu ọrụ dị elu na obere akụrụngwa.

Kedu ka nke ahụ si bụrụ ihe niile?

Mba, o nwere ihe ọzọ. Mmemme mmeghachi omume na-enyere aka iji akụrụngwa eme ihe nke ọma, mana ọ na-abịakwa na ọnụ ahịa. Karịsịa, a ga-edegharị koodu ahụ dịka ụkpụrụ nke enweghị mgbochi ma zere igbochi eriri I/O. Na nke a bụ ihe atụ dị iche iche nke mmepe na igbu egbu. Ma n'agbanyeghị na enwere ọtụtụ ọba akwụkwọ bara uru ebe a, ọ ka bụ mgbanwe dị egwu n'ụzọ echiche mbụ.

Nke mbụ, ị ga-amụta ka esi ede koodu na-agba ọsọ n'otu n'otu. Ozugbo ịmalitere iji I/O anaghị egbochi, ịkwesịrị ịkọwapụta ihe ga-eme mgbe enwetara nzaghachi. Naanị igbochi na ichere agaghịzi arụ ọrụ. Kama, ị nwere ike ịgafeghachi oku, jiri mmemme na-emeghachi omume ma ọ bụ ga n'ihu. Mana nke ahụ abụghị ihe niile: iji jiri I/O na-anaghị egbochi, ịchọrọ ma sava na ndị ahịa anaghị egbochi, ọkacha mma ebe niile. N'ihe banyere HTTP, ihe niile dị mfe, mana enwerekwa ọdụ data, sistemụ faịlụ na ọtụtụ ndị ọzọ.

Ma ọ bụ ezie na ngụkọta ọgwụgwụ-na-ọgwụgwụ reactivity na-ebuli arụmọrụ, mgbanwe dị otú ahụ nwere ike isi ike afo na omume. Ya mere, ikike ijikọ koodu reactive na nke dị mkpa na-aghọ ihe dị mkpa iji:

  1. Jiri akụrụngwa rụọ ọrụ nke ọma n'akụkụ sistemụ ngwanrọ kacha arụ ọrụ;
  2. Jiri koodu ụdị dị mfe n'akụkụ ya ndị fọdụrụ.

Na-ewebata Quarkus

N'ezie, nke a bụ isi okwu nke Quarkus - ijikọ ụdị mmeghachi omume na mkpa dị mkpa n'ime otu oge ịgba ọsọ.

Quarkus gbadoro ụkwụ na Vert.x na Netty, yana ọtụtụ usoro mmeghachi omume na ndọtị n'elu iji nyere onye nrụpụta aka. Emebere Quarkus maka iwulite ọ bụghị naanị microservices HTTP, kamakwa ụlọ ọrụ na-ebute mmemme. N'ihi ọdịdị mmeghachi omume ya, ọ na-arụ ọrụ nke ọma na sistemụ ozi (Apache Kafka, AMQP, wdg).

Aghụghọ a bụ ka esi eji otu injin reactive maka ma koodu dị mkpa na nke reactive.

Kedu ka Quarkus si ejikọta mmemme dị mkpa yana mmeghachi omume

Quarkus na-eme nke a nke ọma. Nhọrọ n'etiti mkpa na mmeghachi omume pụtara ìhè - jiri kernel reactive maka ha abụọ. Ihe ọ na-enyere aka na ngwa ngwa, koodu na-adịghị egbochi nke na-ejide ihe fọrọ nke nta ka ọ bụrụ ihe niile na-agafe eri ihe omume-loop, aka IO thread. Mana ọ bụrụ na ị nwere REST kpochapụrụ ma ọ bụ ngwa ndị ahịa, Quarkus nwere ụdị mmemme dị mkpa na njikere. Dịka ọmụmaatụ, nkwado HTTP na Quarkus dabere na iji igwe anaghị egbochi ma na-emeghachi omume (Eclipse Vert.x na Netty). Arịrịọ HTTP niile nke ngwa gị nwetara na-ebu ụzọ gafere site na akaghị mmemme (IO Thread) wee ziga ya na akụkụ nke koodu na-ahụ maka arịrịọ ahụ. Dabere na ebe a na-aga, enwere ike ịkpọ koodu njikwa arịrịọ n'ime eriri dị iche (nke a na-akpọ eri onye ọrụ, nke a na-eji n'ihe banyere servlets na Jax-RS) ma ọ bụ jiri eriri I / O isi iyi (ụzọ mmeghachi omume).

Kedu ka Quarkus si ejikọta mmemme dị mkpa yana mmeghachi omume

Njikọ usoro izi ozi na-eji ndị ahịa anaghị egbochi ya na-agba ọsọ n'elu igwe Vert.x. Yabụ, ị nwere ike izipu, nata na hazie ozi sitere na sistemu middleware ozi nke ọma.

Na saịtị ahụ Quarkus.io Nke a bụ ụfọdụ ezigbo nkuzi ga-enyere gị aka ibido na Quarkus:

Anyị ekepụtakwara nkuzi aka na ntanetị iji kuziere gị akụkụ dị iche iche nke mmemme reactive na naanị ihe nchọgharị, enweghị IDE achọrọ, na enweghị kọmpụta achọrọ. Ị nwere ike ịchọta nkuzi ndị a ebe a.

Ihe bara uru

Ihe nkuzi vidiyo 10 na Quarkus ka ịmara isiokwu a

Dị ka ha na-ekwu na webụsaịtị Quarkus.io, Kwarkus - nke a KubernetesNchịkọta Java dabere, ahaziri maka GraalVM na OpenJDK HotSpot wee gbakọta site na ọba akwụkwọ na ụkpụrụ Java kacha mma.

Iji nyere gị aka ịghọta isiokwu a, anyị ahọrọla nkuzi vidiyo iri nke na-ekpuchi akụkụ dị iche iche nke Quarkus na ihe atụ nke ojiji ya:

1. Ewebata Quarkus: Ọgbọ na-esote Java Framework maka Kubernetes

Site n'aka Thomas Qvarnstrom na Jason Greene
Ebumnuche nke ọrụ Quarkus bụ ịmepụta ikpo okwu Java maka Kubernetes na gburugburu ebe enweghị ihe nkesa, yana ijikọta ụdị mmemme na-arụ ọrụ na nke dị mkpa n'ime otu oge na-agba ọsọ ka ndị mmepe wee nwee ike gbanwee usoro ha mgbe ha na-arụ ọrụ dịgasị iche iche nke ụlọ ọrụ na-ekesa ngwa. Chọpụta ihe ndị ọzọ na nkuzi mmeghe n'okpuru.

2. Quarkus: Superfast Subatomic Java

Site: Burr Sutter
Nkuzi vidiyo a sitere na DevNation Live na-egosi otu esi eji Quarkus kwalite ngwa Java ụlọ ọrụ, API, microservices, na ọrụ enweghị nkesa na gburugburu Kubernetes/OpenShift, na-eme ka ha dị ntakịrị, ngwa ngwa, na karịa.

3. Quarkus na GraalVM: na-eme ka Hibernate na-agba ọsọ ọsọ ma na-ebelata ya na nha subatomic

Onye edemede: Sanne Grinovero
Site na ngosi ị ga-amụta ka Quarkus siri bụrụ, ka o si arụ ọrụ, yana otu o si enye gị ohere ịme ọba akwụkwọ dị mgbagwoju anya, dị ka Hibernate ORM, dakọtara na onyonyo GraalVM nke ala.

4. Mụta ịzụlite ngwa enweghị ihe nkesa

Onye edemede: Martin Luther
Vidiyo dị n'okpuru na-egosi otu esi emepụta ngwa Java dị mfe site na iji Quarkus wee bunye ya dị ka ngwa enweghị ihe nkesa na Knative.

5. Quarkus: Nwee obi ụtọ itinye koodu

Onye edemede: Edson Yanaga
Ntuziaka vidiyo iji mepụta ọrụ Quarkus mbụ gị, na-enye gị ohere ịghọta ihe kpatara Quarkus ji emeri obi ndị mmepe.

6. Java na containers - ihe ọdịnihu ha ọnụ ga-abụ

Mark Little biputere ya
Ihe ngosi a na-ewebata akụkọ ihe mere eme nke Java ma kọwaa ihe kpatara Quarkus ji bụrụ ọdịnihu Java.

7. Quarkus: Superfast Subatomic Java

Onye edemede: Dimitris Andreadis
Nyochaa uru nke Quarkus nwetara nkwado sitere n'aka ndị mmepe: ịdị mfe, oke ọsọ dị elu, ọba akwụkwọ kacha mma na ụkpụrụ.

8. Quarkus na usoro rọketi subatomic

Onye edemede: Clement Escoffier
Site na ijikọ na GraalVM, Quarkus na-enye ahụmịhe mmepe ngwa ngwa yana gburugburu oge ịgba ọsọ subatomic. Onye edemede ahụ na-ekwu maka akụkụ mmeghachi omume nke Quarkus yana otu esi eji ya wuo ngwa mmeghachi omume na nkwanye.

9. Quarkus na ngwa ngwa ngwa ngwa na Eclipse MicroProfile

Onye edemede: John Clingan
Site na ijikọ Eclipse MicroProfile na Quarkus, ndị mmepe nwere ike ịmepụta ngwa MicroProfile nwere akpa arụpụtara n'uju nke na-amalite n'ime iri milliseconds. Vidiyo a na-abanye n'ime nkọwa ka esi ede koodu ngwa MicroProfile nwere akpa maka ibunye n'elu ikpo okwu Kubernetes.

10. Java, ụdị "Turbo".

Onye edemede: Marcus Biel
Onye ode akwụkwọ gosipụtara otu esi eji Quarkus mepụta nnukwu obere, nnukwu ngwa ngwa Java nke na-eme ka ọ nwee ezigbo ọganiihu, ọkachasị na gburugburu enweghị ihe nkesa.



isi: www.habr.com

Tinye a comment