Gore rino tinoronga kuvandudza zvakakomba madingindira emidziyo, и . Kuenderera mberi zvine musoro kwemisoro iyi ichave nyaya nezve Quarkus chimiro, nechekare pana Habré. Chinyorwa chanhasi chishoma nezve dhizaini ye "subatomic superfast Java" uye zvimwe nezve chivimbiso chinounzwa naQuarku kuBhizinesi.

Java neJVM zvichiri kufarirwa zvakanyanya, asi kana uchishanda neserverless tekinoroji uye gore-yekuzvarwa microservices, Java nemimwe mitauro yeJVM inoshandiswa zvishoma nezvishoma nekuti inotora yakawandisa nzvimbo yekurangarira uye inononoka kurodha, ichiita. isina kukodzera kushandiswa nemidziyo yenguva pfupi. Neraki, mamiriro aya ave kutanga kuchinja nekuda kweQuarkus.
Superfast subatomic Java yasvika padanho idzva!
42 kuburitswa, mwedzi misere yebasa renharaunda uye 8 vanoshamisa vanogadzira - mhedzisiro yazvo zvese kwaive kuburitswa munaNovember 177. , kuburitswa kunoratidza chiitiko chakakosha mukuvandudzwa kweprojekiti uye kunopa zvakawanda zvinotonhorera maficha uye kugona (unogona kuverenga zvakawanda nezvavo mu. ).
Nhasi tichakuratidza kuti Quarkus inosanganisa sei zvakakosha uye zvinogadzirisa zvirongwa zvemamodhi mune imwechete inoshanda musimboti. Tichatanga nenhoroondo pfupi uye tozopinda mune zvakadzama nezve Quarkus 'reactive core dualism chii uye sei. -Vagadziri vanogona kutora mukana weizvi mabhenefiti.
, и -mabasa - izvi zvese, sezvavanotaura, pakusimuka nhasi. Munguva pfupi yapfuura, kusikwa kwemafu-centric architectures kwave kuri nyore uye kunowanikwa, asi matambudziko anoramba aripo - kunyanya kune vanogadzira Java. Semuyenzaniso, kana iri nyaya yebasa risina basa uye microservices, pane kudiwa kwekukurumidzira kudzikisa nguva yekutanga, kuderedza kushandiswa kwekuyeuka, uye vachiri kuita kuti kukura kwavo kuve nyore uye kunakidza. Java yakagadziridza akati wandei mumakore achangopfuura, senge yakagadziridzwa ergonomics mashandiro emidziyo nezvimwe zvakadaro. Nekudaro, kuita kuti Java ishande nemazvo mumudziyo kuchiri kunetsa. Saka isu tichatanga nekutarisa zvimwe zvezvakasikwa zvakaomarara zveJava, izvo zvinonyanya kuoma kana uchigadzira midziyo-yakatarisana neJava application.
Kutanga, ngatitarisei nhoroondo.

Hova nemidziyo
Kutanga neshanduro 8u131, Java yakatanga kuwedzera kana kushoma midziyo yekutsigira nekuda kwekuvandudzwa kwe ergonomics mashandiro. Kunyanya, iyo JVM ikozvino inoziva kuti mangani ma processor cores airi kuita uye anogona kugadzirisa tambo madziva-kazhinji forogo/join madziva-zvichienderana. Ehe, izvi zvakanaka, asi ngatiti isu tine yechinyakare webhu application inoshandisa HTTP servlets uye inomhanya muTomcat, Jetty, nezvimwe. Nekuda kweizvozvo, iyi application ichapa chikumbiro chega chega shinda yakaparadzana uye ichibvumira kuti ivhare shinda iyi ichimirira maI/O mashandiro, semuenzaniso, kana uchiwana dhatabhesi, mafaera kana mamwe masevhisi. Ndiko kuti, ukuru hwechikumbiro chakadaro hachibvi pahuwandu hwemacores aripo, asi pahuwandu hwekukumbira panguva imwe chete. Mukuwedzera, izvi zvinoreva kuti quotas kana miganhu muKubernetes pahuwandu hwemacores haizobatsiri zvakanyanya pano, uye nyaya yacho inozopedzisira yapera.
Memory kuneta
Threads indangariro. Uye intra-container ndangariro mipimo haisati iri panacea. Ingotanga kuwedzera huwandu hwezvishandiso uye tambo, uye nekukurumidza kana gare gare iwe uchasangana nekuwedzera kwakakosha mukuchinja frequency uye, semhedzisiro, kuderera kwekuita. Zvakare, kana application yako ichishandisa echinyakare microservice masisitimu, kana kubatanidza kune dhatabhesi, kana kushandisa caching, kana neimwe nzira inoshandisa ndangariro, iwe zviripachena unoda chishandiso chinokutendera kuti utarise mukati meJVM uye uone mabatiro ainoita ndangariro pasina kuiuraya. JVM pachayo (semuenzaniso, XX:+UseCGroupMemoryLimitForHeap). Uye kunyangwe, kubvira Java 9, iyo JVM yakadzidza kugamuchira mapoka uye kugadzirisa zvinoenderana, kuchengetedza uye kutonga ndangariro inoramba iri nyaya yakaoma.
Quotas uye miganhu
Java 11 yakaunza rutsigiro rweCPU quotas (sePreferContainerQuotaForCPUCount). Kubernetes inopawo rutsigiro rwemiganhu uye quotas. Hongu, izvi zvese zvine musoro, asi kana application ikadarika zvakare chikamu chakagoverwa, isu tinopedzisira tave nehukuru - sezvazvakaita neyakajairwa Java application - inotarwa nehuwandu hwemacores uye nekugoverwa kwetambo yakaparadzana kune imwe neimwe. kukumbira, saka pane pfungwa shoma mune izvi zvese.
Uye zvakare, kana iwe ukashandisa quotas uye miganhu kana chiyero-kunze mabasa epuratifomu ari pasi peKubernetes, dambudziko zvakare harizvigadzirise pacharo. Isu tinongoshandisa zvimwe zviwanikwa pakugadzirisa dambudziko rekutanga kana kupedzisira tashandisa zvakanyanya. Uye kana iri yakakwira-mutoro system mune yeruzhinji gore, isu tingatozopedzisira tashandisa zviwanikwa zvakawanda kupfuura zvatinoda chaizvo.
Uye chii chekuita nezvose izvi?
Kuzvitaura zviri nyore, shandisa asynchronous uye asiri-kuvharira I/O maraibhurari nemafuremu seNetty, kana Akka. Ivo vakanyanya kukodzera kushanda mumidziyo nekuda kwemaitiro avo ekuita. Nekuda kwekusavharira I/O, iyo tambo imwe chete inogona kugadzirisa zvikumbiro zvakawanda panguva imwe chete. Ipo chikumbiro chimwe chakamirira mhinduro dzeI / O, iyo tambo yekugadzirisa inoburitswa uye inotorwa neimwe chikumbiro. Uye kana mhinduro dzeI / O dzasvika, kugadzirisa chikumbiro chekutanga kunoenderera. Nekupindirana kwekugadzirisa zvikumbiro mukati metambo imwe chete, unogona kuderedza huwandu hwetambo uye kuderedza mashandisirwo ezvishandiso pakugadzirisa zvikumbiro.
Nekusavharira I/O, huwandu hwemacores hunova kiyi parameter nekuti inosarudza huwandu hweI/O tambo dzinogona kuitwa dzakafanana. Kana yakashandiswa nemazvo, izvi zvinokutendera kuti unyatso kugovera mutoro pakati pemacores uye ubate mabasa epamusoro ane zviwanikwa zvishoma.
Sei, ndizvo chete?
Aiwa, pane chimwe chinhu. Reactive programming inobatsira kushandisa zvirinani zviwanikwa, asi zvakare inouya nemutengo. Kunyanya, iyo kodhi ichafanirwa kunyorwa zvakare zvinoenderana nemisimboti yekusavharira uye kudzivirira kuvharira I/O tambo. Uye iyi ndiyo yakasiyana zvachose modhi yekusimudzira uye kuuraya. Uye kunyangwe paine akawanda anobatsira maraibhurari pano, ichiri shanduko huru munzira yakajairika yekufunga.
Kutanga, iwe unofanirwa kudzidza kunyora kodhi inomhanya asynchronously. Paunenge uchinge watanga kushandisa isina-kuvharira I / O, iwe unofanirwa kutsanangura zvakajeka izvo zvinofanirwa kuitika kana mhinduro kuchikumbiro ichigamuchirwa. Kungovhara nekumirira hazvichashande. Pane kudaro, unogona kupasa callbacks, shandisa reactive programming kana kuenderera mberi. Asi handizvo zvese: kushandisa isiri-kuvharira I/O, unoda ese ari maviri asingavhare maseva uye vatengi, zviri nani kwese. Panyaya yeHTTP, zvese zviri nyore, asi kune zvakare dhatabhesi, mafaera masisitimu, uye zvimwe zvakawanda.
Uye kunyangwe kuguma-kusvika-kumagumo reactivity kunowedzera kushanda zvakanaka, shanduko yakadaro inogona kunetsa mudumbu mukuita. Naizvozvo, kugona kusanganisa reactive uye yakakosha kodhi inova prerequisite kuitira kuti:
- Shandisa zvinobudirira zviwanikwa munzvimbo dzakaremerwa kwazvo dzesoftware system;
- Shandisa kodhi yemaitiro akareruka muzvikamu zvasara.
Kusuma Quarkus
Chaizvoizvo, ichi ndicho musimboti weQuarkus - kusanganisa reactive uye akakosha mamodheru mukati meimwe yekumhanya nharaunda.
Quarkus yakavakirwa paVert.x uye Netty, iine huwandu hwemafuremu anoshanda uye edzedzero pamusoro kubatsira mugadziri. Quarkus yakagadzirirwa kuvaka kwete chete HTTP microservices, asiwo inofambiswa nezviitiko zvivakwa. Nekuda kwehunhu hwayo hwekuita, inoshanda zvakanyanya nemasisitimu ekutumira mameseji (Apache Kafka, AMQP, nezvimwewo).
Iwo manomano mashandisiro eiyo yakafanana reactive injini kune zvese zvakakosha uye reactive kodhi.

Quarks anoita izvi zvinoshamisa. Sarudzo pakati pekukosha uye reactive iri pachena - shandisa reactive kernel kune ese ari maviri. Chainonyatso batsira nacho inokurumidza, isiri-yekuvharisa kodhi inobata zvinenge zvese zvinopfuura nepachiitiko-loop thread, aka IO tambo. Asi kana iwe uine yekare REST kana mutengi-parutivi maapplication, Quarkus ine yakakosha programming modhi payakagadzirira. Semuenzaniso, HTTP tsigiro muQuarkus yakavakirwa pakushandiswa kweinjini isingavhare uye inoshanda (Eclipse Vert.x uye Netty). Zvese zvikumbiro zveHTTP zvakatambirwa nechikumbiro chako zvinotanga kupfuura nepachiitiko loop (IO Thread) uye yozotumirwa kune chikamu chekodhi inogadzirisa zvikumbiro. Zvichienderana nekwaunoenda, iyo yekukumbira manejimendi kodhi inogona kudanwa mukati meimwe shinda yakasiyana (iyo inonzi tambo yevashandi, inoshandiswa muchiitiko che servlets uye Jax-RS) kana kushandisa sosi I/O shinda (reactive nzira).

Messaging system connectors anoshandisa vasingavharidzi vatengi vanomhanya pamusoro peVert.x injini. Naizvozvo, unogona kutumira, kugamuchira uye kugadzirisa mameseji kubva kumeseji yepakati masystem.
Panzvimbo Heano mamwe matutorial akanaka ekukubatsira kuti utange neQuarkus:
Isu takagadzirawo online maoko-on tutorials kuti tikudzidzise akasiyana maficha e reactive programming mubrowser chete, hapana IDE inodiwa, uye hapana komputa inodiwa. Unogona kuwana zvidzidzo izvi .
Inobatsira Zviwanikwa
- Quarkus purojekiti webhusaiti -
- Quarkus chirongwa paGitHub -
- Quarkus chirongwa Twitter -
- Quarkus chirongwa chekutaura -
- Quarkus Project Forums - !forum/quarkus-dev
10 mavhidhiyo zvidzidzo paQuarkus kuti ujairane nemusoro wenyaya
Sezvavanotaura pawebhusaiti , - izvi -yakatarisana neJava stack, yakagadzirirwa GraalVM uye OpenJDK HotSpot uye yakaunganidzwa kubva kumaraibhurari eJava akanakisa uye zviyero.
Kuti ikubatsire kunzwisisa musoro wenyaya, isu takasarudza gumi vhidhiyo tutorials inovhara akasiyana maQuarkus uye mienzaniso yekushandiswa kwayo:
1. Kusuma Quarkus: The Next Generation Java Framework yeKubernetes
NaThomas Qvarnstrom naJason Greene
Chinangwa cheQuarkus chirongwa ndechekugadzira chikuva cheJava cheKubernetes uye nharaunda dzisina server, uye kusanganisa reactive uye zvakakosha hurongwa hwemamodhi mune imwechete yekumhanyisa nharaunda kuitira kuti vanogadzira vagone kusiyanisa maitiro avo kana vachishanda neakasiyana akaparadzirwa ekushandisa zvivakwa. Tsvaga zvimwe muhurukuro yekusuma pazasi.

2. Quarkus: Superfast Subatomic Java
By: Burr Sutter
Vhidhiyo iyi yedzidziso kubva kuDevNation Live inoratidza mashandisiro eQuarkus kukwirisa bhizinesi Java application, APIs, microservices, uye serverless mabasa munzvimbo yeKubernetes/OpenShift, zvichiita kuti ive diki, nekukurumidza, uye zvakanyanya scally.

3. Quarkus uye GraalVM: kusimudzira Hibernate kusvika kumhanyiro yepamusoro uye kuidzikisa kusvika kune subatomic saizi
Munyori: Sanne Grinovero
Kubva pamharidzo iwe uchadzidza kuti Quarkus yakavapo sei, kuti inoshanda sei, uye kuti inokubvumidza sei kugadzira maraibhurari akaomarara, seHibernate ORM, anoenderana neako GraalVM mifananidzo.

4. Dzidza kugadzira serverless application
Munyori: Martin Luther
Vhidhiyo iri pazasi inoratidza maitiro ekugadzira yakapusa Java application uchishandisa Quarkus uye woiisa sevhavha application paKnative.

5. Quarkus: Nakidzwa coding
Munyori: Edson Yanaga
Vhidhiyo gwara rekugadzira yako yekutanga Quarkus chirongwa, ichikubvumidza iwe kuti unzwisise kuti sei Quarkus iri kuhwina mwoyo yevagadziri.

6. Java nemidziyo - ramangwana ravo pamwe chete richave rakaita sei
Yakatumirwa naMark Little
Iyi mharidzo inosuma nhoroondo yeJava uye inotsanangura kuti sei Quarkus iri ramangwana reJava.

7. Quarkus: Superfast Subatomic Java
Munyori: Dimitris Andreadis
Mhedziso yemabhenefiti eQuarkus akagamuchira kuzivikanwa kubva kuvagadziri: nyore, ekupedzisira-yepamusoro kumhanya, akanakisa maraibhurari uye zviyero.

8. Quarkus uye subatomic rocket systems
Munyori: Clement Escoffier
Kuburikidza nekubatanidzwa neGraalVM, Quarkus inopa iyo yekupedzisira-inokurumidza kusimudzira ruzivo uye subatomic yekumhanya nharaunda. Iye munyori anotaura nezve reactive divi reQuarkus uye mashandisiro azvo kuvaka reactive uye rekufambisa maapplication.

9. Quarkus uye kukurumidza kushandiswa kwekushandiswa muEclipse MicroProfile
Munyori: John Clingan
Nekubatanidza Eclipse MicroProfile uye Quarkus, vagadziri vanogona kugadzira yakazara-yakazara-yakaiswa MicroProfile application inotangisa mumakumi emamilliseconds. Vhidhiyo inoenda mune zvakadzama maitiro ekukodha yakamisikidzwa MicroProfile application yekutumirwa paKubernetes papuratifomu.

10. Java, "Turbo" shanduro
Munyori: Marcus Biel
Munyori anoratidza mashandisiro eQuarkus kugadzira akanyanya-diki, akanyanya-kukurumidza Java midziyo inogonesa mabudiro chaiwo, kunyanya munzvimbo dzisina server.

Source: www.habr.com
