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.
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. 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.
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.
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.