Me pehea te whakakotahi a Quarkus i nga kaupapa whakahirahira me te hohenga

I tenei tau e whakamahere ana matou ki te tino whakawhanake i nga kaupapa ipu, Kapua-Maori Java и Kubernetes. Ko te haere tonutanga o enei kaupapa he korero mo te anga Quarkus, kua whakaarohia i runga i a Habré. He iti ake te tuhinga o tenei ra mo te hoahoatanga o te "Subatomic superfast Java" me etahi atu mo te kupu whakaari ka kawea mai e Quarkus ki te Enterprise.

Me pehea te whakakotahi a Quarkus i nga kaupapa whakahirahira me te hohenga

Kei te tino rongonui a Java me te JVM, engari i te wa e mahi ana me nga hangarau kore-tumau me nga ratonga miihini-kapua, ka iti ake te whakamahi a Java me etahi atu reo JVM na te mea he nui rawa te waahi mahara me te puhoi rawa ki te uta, na reira he pai rawa mo te whakamahi me nga ipu poto. Waimarie, kua timata tenei ahuatanga ki te huri na Quarkus.

Kua eke te superfast subbatomic Java ki te taumata hou!

42 nga whakaputanga, 8 marama o te mahi hapori me te 177 nga kaiwhakawhanake whakamiharo - ko te hua o enei mea katoa ko te tukunga i te marama o Noema 2019 Kuaraka 1.0, he tukunga e tohu ana i tetahi tohu nui i roto i te whanaketanga o te kaupapa me te tuku i te maha o nga ahuatanga pai me nga kaha (ka taea e koe te panui atu mo ratou i panui).

I tenei ra ka whakaatu atu matou ki a koe me pehea te whakakotahi a Quarkus i nga tauira hootaka hihiko me te hohenga ki roto i te matua tauhohenga kotahi. Ka tiimata me te hitori poto katahi ka haere ki nga korero mo te ahua o te ruatanga matua urupare a Quarkus me pehea Java-Ka taea e nga Kaihanga te whakamahi i enei painga.

Microservices, nga hoahoanga e akiakihia ana e nga huihuinga и kaore-nga mahi - ko enei katoa, e kii ana ratou, kei te piki haere i tenei ra. Ina tata nei, kua tino maamaa ake te hangahanga o nga hoahoanga-a-kapua, engari kei te mau tonu nga raru - ina koa mo nga kaihanga Java. Hei tauira, mo nga mahi kore-kaupapa me nga ratonga moroiti, he hiahia nui ki te whakaiti i te wa whakaoho, te whakaiti i te kai mahara, me te pai ake o to raatau whanaketanga. He maha nga whakapainga a Java i nga tau tata nei, penei i te whakapai ake i nga mahi ergonomics mo nga ipu me etahi atu. Heoi, he uaua tonu te whakauru i a Java ki roto i te ipu. No reira ka timata tatou ma te titiro ki etahi o nga uauatanga o Java, he tino kaha ki te whakawhanake i nga tono Java e hangai ana ki nga ipu.

Tuatahi, ka titiro tatou ki te hitori.

Me pehea te whakakotahi a Quarkus i nga kaupapa whakahirahira me te hohenga

Nga awa me nga ipu

I timata mai i te putanga 8u131, i timata a Java ki te maha ake, iti ake ranei te tautoko i nga ipu na te whakapai ake i nga mahi ergonomics. Inaianei, kei te mohio te JVM inaianei ki te maha o nga punaha tukatuka e rere ana, ka taea te whirihora i nga puna miro — te nuinga o te marau / hono ki nga puna wai-i runga ano. Ae ra, he pai tenei, engari me kii he tono paetukutuku tuku iho e whakamahi ana i nga servlets HTTP ka rere ki Tomcat, Jetty, etc. Ko te mutunga, ka whakawhiwhia e tenei tono ki ia tono he miro motuhake ka tuku kia aukati i tenei miro i te wa e tatari ana mo nga mahi I/O, hei tauira, i te wa e uru atu ana ki te paataka raraunga, nga konae, etahi atu ratonga ranei. Arā, ko te rahi o taua tono karekau i te whakawhirinaki ki te maha o nga matua e waatea ana, engari ki te maha o nga tono tukutahi. I tua atu, ko te tikanga ko nga roherohenga me nga rohe i roto i nga Kubernetes mo te maha o nga matua kare e tino awhina i konei, ka mutu te take ki te tarai.

Te ngenge o te mahara

He mahara nga miro. A ko nga here o te mahara ki roto i nga ipu kaore rawa he rongoa. Me timata noa ki te whakanui ake i te maha o nga tono me nga miro, a ka roa ake nei ka tupono koe ki te pikinga nui o te auau whakawhiti, a, ko te mutunga, ka paheke te mahi. Ina hoki, mena ka whakamahi to tono i nga angamahi microservice tuku iho, ka hono atu ranei ki tetahi papaarangi raraunga, ka whakamahi keteroki ranei, ka whakamahia ranei e koe te mahara, ka tino hiahia koe ki tetahi taputapu e taea ai e koe te titiro ki roto i te JVM me te kite me pehea te whakahaere mahara me te kore e patu. JVM ano (hei tauira, XX:+UseCGroupMemoryLimitForHeap). A ahakoa, mai i te Java 9, kua ako te JVM ki te whakaae ki nga roopu me te urutau, ko te rahui me te whakahaere mahara he mea uaua tonu.

Nga rohenga me nga rohe

I whakauruhia e Java 11 te tautoko mo nga waahanga CPU (penei i te PreferContainerQuotaForCPUCount). Ka tuku tautoko hoki a Kubernetes mo nga rohe me nga motunga. Ae, he tika katoa tenei, engari ki te nui ake ano te tono ki te motunga kua tohaina, ka mutu ano te rahi - pera me nga tono Java tuku iho - kua whakatauhia e te maha o nga matua me te tohatoha o te miro motuhake mo ia. tono, he iti noa iho te tikanga o enei mea katoa.
I tua atu, ki te whakamahi koe i nga roherohenga me nga rohenga, nga mahi tauine ranei o te papaapapa kei raro i a Kubernetes, kaore ano te raru e whakaoti i a ia ano. Ka whakapau moni noa matou ki te whakaoti i te raru tuatahi, ka whakapau kaha ranei. A, ki te mea he punaha kawenga nui i roto i te kapua a te iwi whanui, ka mutu ka nui ake te whakamahi rauemi i ta maatau e tino hiahia ana.

A he aha te mahi mo enei mea katoa?

Hei whakamaarama noa, whakamahia nga whare pukapuka I/O me nga anga mahi tukutahi me te kore aukati pera i a Netty, Vert.x ko Akka ranei. He pai ake ki te mahi i roto i nga ipu na te ahua o te urupare. He mihi ki te I/O kore-aukati, ka taea e te miro kotahi te whakahaere i nga tono maha. Ahakoa e tatari ana tetahi tono mo nga hua I/O, ka tukuna te tukatuka miro ka tangohia e tetahi atu tono. A, ka tae mai nga hua I/O, ka haere tonu te tukatuka o te tono tuatahi. Na roto i te tukatuka whakauru o nga tono i roto i te miro kotahi, ka taea e koe te whakaiti i te tapeke o nga miro me te whakaiti i te kohi rauemi mo te tukatuka tono.

Ma te I/O kore-aukati, ka noho te maha o nga matua hei tawhā matua na te mea ka whakatauhia te maha o nga miro I/O ka taea te mahi whakarara. Ina whakamahia tika, ka taea e koe te tohatoha i te kawenga i waenga i nga matua me te hapai i nga taumahatanga teitei ake me te iti rawa o nga rauemi.

Me pehea, koinei anake?

Kao, he mea ke atu. Ka awhina nga kaupapa reactive ki te whakamahi i nga rauemi, engari he utu ano. Ina koa, me tuhi ano te waehere i runga i nga tikanga o te aukati-kore me te karo i te aukati i nga miro I/O. A he tauira tino rereke tenei mo te whakawhanaketanga me te mahi. A ahakoa he maha nga whare pukapuka whai hua kei konei, he rereke tonu te ahua o te whakaaro o mua.

Tuatahi, me ako koe me pehea te tuhi i te waehere ka rere koretake. Kia timata koe ki te whakamahi i te I/O kore-aukati, me tino whakapūtā koe he aha ka puta ina tae mai he whakautu ki tetahi tono. Ko te aukati noa me te tatari ka kore e mahi. Engari, ka taea e koe te tuku waea whakahoki, te whakamahi i te hotaka hohenga, te haere tonu ranei. Engari ehara i te mea katoa: ki te whakamahi i te I/O kore-aukati, me hiahia koe ki nga kaitoro kore-aukati me nga kaihoko, he pai ki nga waahi katoa. Mo te HTTP, he mea ngawari nga mea katoa, engari kei reira ano nga papaarangi, nga punaha konae, me te maha atu.

A ahakoa ko te tauhohenga mutunga-ki-mutunga ka whakanui ake i te pai, he uaua ki te puku i roto i nga mahi. No reira, ko te kaha ki te whakakotahi i te waehere tauhohenga me te tohu herenga ka waiho hei tikanga kia:

  1. Te whakamahi tika i nga rauemi i roto i nga waahanga tino utaina o te punaha rorohiko;
  2. Whakamahia te waehere kāhua ngawari ake i ona waahanga e toe ana.

Te whakauru i a Quarkus

Inaa, koinei te ngako o Quarkus - ki te whakakotahi i nga tauira tauhohenga me nga tauira whakahirahira i roto i te taiao whakahaere kotahi.

Ko Quarkus kei runga i a Vert.x me Netty, me te whānuitanga o nga anga mahi urupare me nga toronga ki runga hei awhina i te kaiwhakawhanake. Kua hoahoatia a Quarkus mo te hanga i nga ratonga miihini HTTP anake, engari ano hoki nga hoahoanga-a-takahanga. Na tona ahua urupare, he tino pai te mahi me nga punaha karere (Apache Kafka, AMQP, me etahi atu).

Ko te mahi he me pehea te whakamahi i te miihini reactive kotahi mo nga waehere imperative me te reactive.

Me pehea te whakakotahi a Quarkus i nga kaupapa whakahirahira me te hohenga

He maamaa te mahi a Quarkus. Ko te kowhiringa i waenga i te imperative me te reactive ka kitea - whakamahia he kakano reactive mo nga mea e rua. Ko te mea e tino awhina ana ko te waehere tere, kore-aukati e whakahaere tata ana ki nga mea katoa e haere ana i roto i te miro takahanga, ara IO miro. Engari ki te whai koe i te REST matarohia, i nga tono taha-kiritaki ranei, kei a Quarkus tetahi tauira hotaka kaupapa kua rite. Hei tauira, ko te tautoko HTTP i Quarkus i runga i te whakamahinga o te miihini kore-aukati me te urupare (Eclipse Vert.x me Netty). Ko nga tono HTTP katoa i whakawhiwhia mai e to tono ka tukuna tuatahi ma te kopae takahanga (IO Miro) ka tukuna ki te wahanga o te waehere e whakahaere ana i nga tono. I runga i te haerenga, ka taea te karanga i te waehere whakahaere tono i roto i tetahi miro motuhake (ko te miro kaimahi e kiia nei, e whakamahia ana i roto i te keehi o nga servlets me te Jax-RS) ka whakamahi ranei i te miro I/O puna (ara reactive).

Me pehea te whakakotahi a Quarkus i nga kaupapa whakahirahira me te hohenga

Ka whakamahia e nga hononga punaha karere nga kaihoko kore-aukati e rere ana i runga ake o te miihini Vert.x. Na reira, ka taea e koe te tuku, te tango me te tukatuka i nga karere mai i nga punaha waenga waenga karere.

I te pae Quarkus.io Anei etahi akoranga pai hei awhina i a koe ki te timata me Quarkus:

I hanga ano e matou nga akoranga-a-ipurangi hei whakaako i a koe i nga ahuatanga rereke o te hotaka hoheko i roto i te tirotiro noa, kaore he IDE e hiahiatia ana, kaore he rorohiko e hiahiatia ana. Ka kitea e koe enei akoranga konei.

Ngā rauemi whai hua

10 nga akoranga ataata mo Quarkus kia mohio ai koe ki te kaupapa

Ka rite ki ta ratou korero i runga i te paetukutuku Quarkus.io, quarkus - he Kubernetes-i whakahiatohia te puranga Java, he mea whakarite mo GraalVM me OpenJDK HotSpot me te huihui mai i nga whare pukapuka me nga paerewa Java pai rawa atu.

Hei awhina i a koe ki te mohio ki te kaupapa, kua tohua e matou nga akoranga ataata 10 e whakaatu ana i nga ahuatanga o Quarkus me nga tauira o tana whakamahinga:

1. Te Whakataki i a Quarkus: Te Anga Whakatupuranga Java mo Kubernetes

Na Thomas Qvarnstrom raua ko Jason Greene
Ko te whainga o te kaupapa Quarkus ko te hanga papaa Java mo nga Kubernetes me nga taiao kore-tumau, me te whakakotahi i nga tauira hootaka tauhohenga me te hiranga ki roto i te waahi whakahaere kotahi kia taea ai e nga kaiwhakawhanake te whakarereke i o raatau huarahi i te wa e mahi ana me te whānuitanga o nga hoahoanga tono tohatoha. Rapua etahi atu korero i roto i te kauhau whakataki i raro nei.

2. Quarkus: Superfast Subatomic Java

Na: Burr Sutter
Ko tenei akoranga ataata mai i DevNation Live e whakaatu ana me pehea te whakamahi i te Quarkus ki te arotau i nga tono Java hinonga, nga API, nga ratonga miihini, me nga mahi kore-tumau i roto i te taiao Kubernetes/OpenShift, ka iti ake, ka tere ake, ka nui ake te tauine.

3. Quarkus me GraalVM: te whakatere i te Hibernate ki nga tere nui me te whakaheke ki nga rahi subbatomic

Kaituhi: Sanne Grinovero
Mai i te whakaaturanga ka ako koe i te ahuatanga o Quarkus, pehea te mahi, me pehea e taea ai e koe te hanga whare pukapuka uaua, penei i te Hibernate ORM, kia hototahi ki nga whakaahua GraalVM taketake.

4. Ako ki te whakawhanake i nga tono karekau

Kaituhi: Martin Luther
Ko te ataata i raro nei e whakaatu ana me pehea te hanga i tetahi tono Java ngawari ma te whakamahi i te Quarkus me te tuku hei tono korekore i runga i te Knative.

5. Quarkus: Kia harikoa te mahi whakawaehere

Kaituhi: Edson Yanaga
He aratohu ataata ki te hanga i to kaupapa tuatahi a Quarkus, kia mohio koe he aha i toa ai a Quarkus i nga ngakau o nga kaihanga.

6. Java me nga ipu - he aha te ahua o to raua wa kei te heke mai

I whakairihia e Mark Little
Ko tenei whakaaturanga e whakaatu ana i te hitori o Java me te whakamarama he aha a Quarkus te heke mai o Java.

7. Quarkus: Superfast Subatomic Java

Kaituhi: Dimitris Andreadis
He tirohanga whanui mo nga painga o Quarkus kua whakawhiwhia mai i nga kaiwhakawhanake: te ngawari, te tere tere, nga whare pukapuka pai me nga paerewa.

8. Ko te Quarkus me nga punaha roketi subatomic

Kaituhi: Clement Escoffier
Na roto i te whakauru ki a GraalVM, ka whakaratohia e Quarkus he wheako whakawhanaketanga tere-tere me te taiao wa mahi subatom. Ka korero te kaituhi mo te taha hohenga o Quarkus me pehea te whakamahi hei hanga i nga tono reactive me te rere.

9. Quarkus me te whanaketanga tono tere i Eclipse MicroProfile

Kaituhi: John Clingan
Ma te whakakotahi i te Eclipse MicroProfile me te Quarkus, ka taea e nga kaiwhakawhanake te hanga i nga tono MicroProfile kua oti te whakauru ki roto i nga ipu ka whakarewahia i roto i te tekau maero. Ka whai kiko te riipene whakaata me pehea te tohu i tetahi tono MicroProfile kua whakauruhia mo te tuku ki runga i te papaaho Kubernetes.

10. Java, "Turbo" putanga

Kaituhi: Marcus Biel
Ka whakaatu te kaituhi me pehea te whakamahi i te Quarkus ki te hanga i nga ipu Java tino iti, tino tere e taea ai te tino pakaruhanga, ina koa i nga taiao kore-tumau.



Source: will.com

Tāpiri i te kōrero