Kamoo Quarkus e kopanyang mananeo a bohlokoa le a sebetsang

Selemong sena re rera ho nts'etsapele lihlooho tsa lijana ka botebo, Java-Native Java и Kubernetes. Tsoelo-pele e utloahalang ea lihlooho tsena e tla ba pale e mabapi le moralo oa Quarkus, o se o ntse o le teng nahanela ho Habre. Sengoloa sa kajeno ha se bue ka moralo oa "subatomic superfast Java" le ho feta ka ts'episo eo Quarks e e tlisang ho Enterprise.

Kamoo Quarkus e kopanyang mananeo a bohlokoa le a sebetsang

Java le JVM li ntse li tumme haholo, empa ha li sebetsa ka mahlale a se nang seva le li-microservices tse tsoang marung, Java le lipuo tse ling tsa JVM li sebelisoa hanyane le hanyane hobane li nka sebaka se ngata sa mohopolo mme li lieha ho li kenya, ho li etsa. e sa lokeloang hantle bakeng sa tshebediso le dijana tsa nako e kgutshwane. Ka lehlohonolo, boemo bona bo se bo qala ho fetoha ka lebaka la Quarkus.

Superfast subatomic Java e fihlile boemong bo bocha!

Litokollo tse 42, likhoeli tse 8 tsa mosebetsi oa sechaba le bahlahisi ba makatsang ba 177 - litholoana tsa tsona kaofela e bile tokollo ka Pulungoana 2019. Quarks 1.0, tokollo e tšoaeang mohato oa bohlokoa ntlafatsong ea morero mme e fana ka likarolo tse ngata tse pholileng le bokhoni (o ka bala haholoanyane ka tsona ho phatlalatso).

Kajeno re tla u bonts'a hore na Quarkus e kopanya mefuta ea mananeo a bohlokoa le a sebetsang joang hore e be motheo o le mong o sebetsang. Re tla qala ka nalane e khuts'oane ebe re kena ka botlalo mabapi le hore na Quarkus' reactive core dualism ke eng le hore na Java-Bahlahisi ba ka nka monyetla ka melemo ena.

Litšebeletso tse nyenyane, meaho e tsamaisoang ke liketsahalo и e sa sebetseng-mesebetsi - sena sohle, joalo ka ha ba re, se ntse se eketseha kajeno. Haufinyane tjena, ho bōptjoa ha meralo ea maru-centric e se e le bonolo haholo ebile e fumaneha haholoanyane, empa mathata a ntse a le teng - haholo-holo ho baetsi ba Java. Ka mohlala, tabeng ea mesebetsi e se nang seva le li-microservices, ho na le tlhokahalo e potlakileng ea ho fokotsa nako ea ho qala, ho fokotsa tšebeliso ea mohopolo, le ho etsa hore tsoelo-pele ea bona e be bonolo le e monate. Java e entse lintlafatso tse 'maloa lilemong tsa morao tjena, joalo ka ts'ebetso e ntlafalitsoeng ea ergonomics bakeng sa lijana joalo-joalo. Leha ho le joalo, ho etsa hore Java e sebetse hantle ka har'a setshelo ho ntse ho le thata. Kahoo re tla qala ka ho sheba tse ling tsa mathata a tlhaho a Java, a hlobaetsang haholo ha ho etsoa lits'ebetso tsa Java tse shebaneng le setshelo.

Pele, a re shebeng histori.

Kamoo Quarkus e kopanyang mananeo a bohlokoa le a sebetsang

Melapo le lijana

Ho qala ka mofuta oa 8u131, Java e ile ea qala ho ts'ehetsa lijana tse ngata kapa tse fokolang ka lebaka la ntlafatso ea ts'ebetso ea ergonomics. Haholo-holo, JVM e se e tseba hore na e sebetsa ka li-processor tse kae 'me e khona ho lokisa matamo a likhoele-hangata matamo a fereko / a kopanya - ho latela. Ehlile, sena se setle, empa ha re re re na le ts'ebeliso ea setso ea webo e sebelisang li-servlets tsa HTTP mme e sebetsa ho Tomcat, Jetty, joalo-joalo. Ka lebaka leo, kopo ena e tla fana ka kopo e 'ngoe le e' ngoe ka khoele e arohaneng 'me e lumelle hore e thibele khoele ena ha e ntse e emetse ts'ebetso ea I / O, mohlala, ha u fumana database, lifaele kapa litšebeletso tse ling. Ke hore, boholo ba kopo e joalo ha bo itšetlehe ka palo ea li-cores tse fumanehang, empa ka palo ea likōpo tsa nako e le 'ngoe. Ho phaella moo, sena se bolela hore li-quotas kapa meeli ho Kubernetes ka palo ea li-cores e ke ke ea thusa haholo mona, 'me taba e tla qetella e tsielehile.

Ho felloa ke mohopolo

Likhoele ke mohopolo. Mme mefokolo ea memori ea intra-container ho hang ha se panacea. Qala feela ho eketsa palo ea likopo le likhoele, 'me haufinyane u tla kopana le keketseho e matla ea ho fetola maqhubu, ka lebaka leo, ho senyeha ha tshebetso. Hape, haeba kopo ea hau e sebelisa mekhoa ea setso ea microservice, kapa e hokahana le database, kapa e sebelisa caching, kapa ka tsela e 'ngoe e sebelisa mohopolo, ho hlakile hore u hloka sesebelisoa se u lumellang ho sheba ka hare ho JVM le ho bona kamoo e laolang mohopolo ntle le ho e bolaea. JVM ka boeona (mohlala, XX:+UseCGroupMemoryLimitForHeap). Leha ho le joalo, ho tloha Java 9, JVM e ithutile ho amohela lihlopha le ho ikamahanya le maemo, ho boloka le ho laola mohopolo e ntse e le taba e rarahaneng.

Likhau le meeli

Java 11 e hlahisitse tšehetso bakeng sa likarolo tsa CPU (joalo ka PreferContainerQuotaForCPUCount). Kubernetes e boetse e fana ka tšehetso bakeng sa meeli le li-quotas. E, sena sohle sea utloahala, empa haeba kopo e boetse e feta palo e fanoeng, re boetse re qetella re e-na le boholo - joalo ka ha ho le joalo ka mekhoa ea setso ea Java - e khethiloeng ke palo ea li-cores le kabo ea khoele e arohaneng bakeng sa e 'ngoe le e' ngoe. kopo, joale ho na le kutloisiso e fokolang ho tsena tsohle.
Ntle le moo, haeba u sebelisa li-quotas le meeli kapa mesebetsi ea sethala e thehiloeng Kubernetes, bothata le bona ha bo rarolle. Re sebelisa lisebelisoa tse ngata ho rarolla bothata ba pele kapa re qetelle re sebelisa chelete e ngata ho feta tekano. 'Me haeba e le tsamaiso e boima haholo marung a sechaba, re batla re qetella re sebelisa lisebelisoa tse ngata ho feta tseo re hlileng re li hlokang.

Le ho etsa eng ka see sohle?

Ho e beha ka mokhoa o bonolo, sebelisa lilaebrari tsa I / O tse sa thibang le tse sa thibeleng joalo ka Netty, Vert.x kapa Akka. Li loketse ho sebetsa ka har'a lijana ka lebaka la sebopeho sa tsona se sebetsang hantle. Ka lebaka la I/O e sa thibeleng, khoele e tšoanang e ka sebetsana le likopo tse ngata ka nako e le 'ngoe. Ha kopo e le 'ngoe e emetse liphetho tsa I / O, ts'ebetso ea khoele e lokolloa ebe e nkoa ke kopo e' ngoe. 'Me ha liphetho tsa I / O li fihla qetellong, ts'ebetso ea kopo ea pele e ntse e tsoela pele. Ka ho sebetsana le likopo ka har'a khoele e le 'ngoe, o ka fokotsa palo eohle ea likhoele le ho fokotsa tšebeliso ea lisebelisoa bakeng sa likopo tsa ho sebetsa.

Ka I / O e sa thibeleng, palo ea li-cores e fetoha parameter ea bohlokoa hobane e khetholla palo ea likhoele tsa I / O tse ka etsoang ka tsela e tšoanang. Ha e sebelisoa ka nepo, sena se u nolofalletsa ho aba mojaro ka katleho pakeng tsa li-cores le ho sebetsana le mesebetsi e phahameng ka lisebelisoa tse fokolang.

Joang, ke sohle seo?

Che, ho na le ntho e 'ngoe hape. Lenaneo le sebetsang le thusa ho sebelisa lisebelisoa hantle, empa hape le tla ka theko. Ka ho khetheha, khoutu e tla tlameha ho ngoloa hape ho ea ka melao-motheo ea ho se thibela le ho qoba ho thibela likhoele tsa I / O. Mme ona ke mohlala o fapaneng ka ho felletseng oa nts'etsopele le ts'ebetso. Le hoja ho na le lilaebrari tse ngata tse molemo mona, e ntse e le phetoho e kholo tseleng e tloaelehileng ea ho nahana.

Taba ea pele, o hloka ho ithuta ho ngola khoutu e tsamaeang ka mokhoa o ts'oanang. Hang ha u qala ho sebelisa I / O e sa thibeleng, u lokela ho hlalosa ka ho hlaka hore na ho lokela ho etsahala'ng ha karabo ea kopo e amoheloa. Ho thibela feela le ho ema ha ho sa tla hlola ho sebetsa. Ho e-na le hoo, o ka fetisa li-callbacks, sebelisa lenaneo le sebetsang kapa ho tsoela pele. Empa ha se eona feela: ho sebelisa I/O e sa thibeleng, o hloka li-server le bareki ba sa thibeleng, ka ho khetheha hohle. Tabeng ea HTTP, ntho e 'ngoe le e' ngoe e bonolo, empa ho boetse ho na le li-database, litsamaiso tsa lifaele, le tse ling tse ngata.

'Me le hoja reactivity ea ho qetela-ho-qetellong e eketsa katleho, phetoho e joalo e ka ba thata ho e etsa ka mpeng. Ka hona, bokhoni ba ho kopanya khoutu e sebetsang le ea bohlokoa e fetoha ntho e hlokahalang bakeng sa ho:

  1. Sebelisa lisebelisoa ka katleho libakeng tse imetsoeng ka ho fetesisa tsa sistimi ea software;
  2. Sebelisa khoutu e bonolo haholoanyane likarolong tsa eona tse setseng.

Ho hlahisa Quarkus

Haele hantle, sena ke motheo oa Quarkus - ho kopanya mehlala e sebetsang le ea bohlokoa ka har'a tikoloho e le 'ngoe ea nako ea ho matha.

Quarkus e ipapisitse le Vert.x le Netty, e nang le mefuta e mengata ea meralo e sebetsang le likeketso ka holimo ho thusa moqapi. Quarkus e etselitsoe ho aha eseng feela li-microservices tsa HTTP, empa le meaho e tsamaisoang ke liketsahalo. Ka lebaka la sebopeho sa eona sa ts'ebetso, e sebetsa ka katleho haholo le mekhoa ea melaetsa (Apache Kafka, AMQP, joalo-joalo).

Leqheka ke mokhoa oa ho sebelisa enjene e ts'oanang e sebetsang bakeng sa khoutu ea bohlokoa le e sebetsang.

Kamoo Quarkus e kopanyang mananeo a bohlokoa le a sebetsang

Quarkus e etsa sena ka bokhabane. Khetho lipakeng tsa bohlokoa le ts'ebetso e hlakile - sebelisa kernel e sebetsang bakeng sa bobeli. Seo e hlileng e se thusang ke khoutu e potlakileng, e sa thibeleng e sebetsanang le hoo e batlang e le ntho e 'ngoe le e' ngoe e fetang ka khoele ea ketsahalo, aka IO thread. Empa haeba u na le likopo tsa khale tsa REST kapa tsa lehlakoreng la bareki, Quarkus e na le mofuta oa bohlokoa oa lenaneo o seng o lokile. Ka mohlala, tšehetso ea HTTP ho Quarkus e itšetlehile ka tšebeliso ea mochine o sa thibeleng le o sebetsang (Eclipse Vert.x le Netty). Likopo tsohle tsa HTTP tse amoheloang ke kopo ea hau li fetisoa pele ka loop ea ketsahalo (IO Thread) ebe li romelloa karolong ea khoutu e laolang likopo. Ho itšetlehile ka sebaka seo u eang ho sona, khoutu ea tsamaiso ea kopo e ka bitsoa ka har'a khoele e arohaneng (seo ho thoeng ke khoele ea basebetsi, e sebelisoang tabeng ea servlets le Jax-RS) kapa sebelisa mohloli oa I / O khoele (tsela e sebetsang).

Kamoo Quarkus e kopanyang mananeo a bohlokoa le a sebetsang

Lihokelo tsa sistimi ea melaetsa li sebelisa bareki ba sa thibeleng ba mathang holim'a enjene ea Vert.x. Ka hona, o ka khona ho romella, ho amohela le ho sebetsana le melaetsa ho tsoa ho litsamaiso tsa melaetsa tsa mahareng.

Sebakeng seo Quarkus.io Mona ke lithupelo tse ntle tse u thusang ho qala ka Quarkus:

Re boetse re thehile lithupelo tsa matsoho a Marang-rang ho u ruta likarolo tse fapaneng tsa ho sebetsa ka har'a sebatli feela, ha ho IDE e hlokahalang, 'me ha ho hlokahale komporo. U ka fumana lithuto tsena mona.

Lisebelisoa Tse Sebelisang

Lithuto tse 10 tsa video ho Quarkus ho tloaelana le sehlooho

Joalo ka ha ba re webosaeteng Quarkus.io, quarkus - sena Kubernetes- e etselitsoeng Java stack, e etselitsoeng GraalVM le OpenJDK HotSpot mme e bokelloa ho tsoa lilaebraring le litekanyetso tse ntle ka ho fetisisa tsa Java.

Ho u thusa ho utloisisa sehlooho, re khethile lithuto tsa video tse 10 tse akaretsang likarolo tse fapaneng tsa Quarkus le mehlala ea ts'ebeliso ea eona:

1. Ho Hlahisa Quarkus: The Next Generation Java Framework bakeng sa Kubernetes

Ka Thomas Qvarnstrom le Jason Greene
Sepheo sa morero oa Quarkus ke ho theha sethala sa Java bakeng sa Kubernetes le libaka tse se nang seva, le ho kopanya mekhoa e sebetsang le ea bohlokoa ea mananeo sebakeng se le seng sa nako ea ho sebetsa e le hore bahlahisi ba ka fetola mekhoa ea bona ha ba sebetsa ka mefuta e mengata ea meralo ea likopo tse ajoang. Fumana ho eketsehileng puong ea selelekela e ka tlase.

2. Quarkus: Superfast Subatomic Java

Ka: Burr Sutter
Thupelo ena ea video e tsoang ho DevNation Live e bonts'a mokhoa oa ho sebelisa Quarkus ho ntlafatsa lits'ebetso tsa Java tsa khoebo, li-API, li-microservices, le lits'ebetso tse se nang seva tikolohong ea Kubernetes/OpenShift, e etsa hore li be nyane haholo, li potlake, hape li senyehe.

3. Quarkus le GraalVM: ho potlakisa Hibernate ho lebelo le phahameng le ho e fokotsa ho isa boholong ba subatomic

Mongoli: Sanne Grinovero
Ho tsoa ho nehelano u tla ithuta hore na Quarkus e bile teng joang, e sebetsa joang, le hore na e u lumella joang ho etsa lilaebrari tse rarahaneng, joalo ka Hibernate ORM, e tsamaellanang le litšoantšo tsa GraalVM.

4. Ithute ho hlahisa lisebelisoa tse se nang seva

Mongoli: Martin Luther
Video e ka tlase e bontša mokhoa oa ho etsa kopo e bonolo ea Java ho sebelisa Quarkus le ho e sebelisa e le sesebelisoa se se nang seva ho Knative.

5. Quarkus: Natefeloa ke ho kh'outu

Mongoli: Edson Yanaga
Tataiso ea video ea ho theha projeke ea hau ea pele ea Quarkus, e u lumellang ho utloisisa hore na hobaneng Quarkus e hapa lipelo tsa batho ba ntlafatsang.

6. Java le lijana - hore na bokamoso ba bona hammoho bo tla ba joang

E ngotsoe ke Mark Little
Tlhahiso ena e hlahisa nalane ea Java mme e hlalosa hore na hobaneng Quarkus e le bokamoso ba Java.

7. Quarkus: Superfast Subatomic Java

Mongoli: Dimitris Andreadis
Kakaretso ea melemo ea Quarkus e fumaneng kananelo ho tsoa ho bahlahisi: bonolo, lebelo le phahameng haholo, lilaebrari tse ntle ka ho fetisisa le litekanyetso.

8. Litsamaiso tsa rocket tsa Quarkus le subatomic

Mongoli: Clement Escoffier
Ka ho kopanngoa le GraalVM, Quarkus e fana ka phihlelo ea tsoelo-pele e potlakileng haholo le tikoloho ea nako ea ho sebetsa ea subatomic. Sengoli se bua ka lehlakore le sebetsang la Quarkus le mokhoa oa ho le sebelisa ho aha lits'ebetso tse sebetsang le tse phallelang.

9. Quarkus le nts'etsopele ea kopo e potlakileng ho Eclipse MicroProfile

Mongoli: John Clingan
Ka ho kopanya Eclipse MicroProfile le Quarkus, bahlahisi ba ka theha lits'ebetso tsa MicroProfile tse nang le likarolo tse felletseng tse qalang ka mashome a li-milliseconds. Video e fana ka lintlha tse qaqileng mabapi le mokhoa oa ho khouta kopo ea MicroProfile e kentsoeng bakeng sa ho romelloa sethaleng sa Kubernetes.

10. Java, "Turbo" version

Mongoli: Marcus Biel
Sengoli se bonts'a mokhoa oa ho sebelisa Quarkus ho theha lijana tsa Java tse nyane haholo, tse potlakileng haholo tse etsang hore ho be le katleho ea 'nete, haholo libakeng tse se nang seva.



Source: www.habr.com

Eketsa ka tlhaloso