Cruinneachadh dùthchasach ann an Quarkus - carson a tha e cudromach

Hi uile! Is e seo an dàrna post san t-sreath againn air Quarkus - an-diugh bruidhnidh sinn mu chruinneachadh dùthchasach.

Cruinneachadh dùthchasach ann an Quarkus - carson a tha e cudromach

Cuarcus 's e stac Java a th' ann a tha freagarrach dha Kubernetes. Ged a tha gu cinnteach tòrr a bharrachd ri dhèanamh an seo, tha sinn air tòrr obair mhath a dhèanamh air tòrr thaobhan, a’ gabhail a-steach a bhith a’ dèanamh an fheum as fheàrr den JVM agus grunn fhrèaman. Is e aon de na feartan aig Quarkus a tha air barrachd ùidh a tharraing bho luchd-leasachaidh an dòigh-obrach fharsaing, fuaigheil aige airson còd Java a thionndadh gu faidhlichean so-ghnìomhaichte airson siostam obrachaidh sònraichte (ris an canar “co-chruinneachadh dùthchasach”), coltach ri C agus C ++, far a bheil an leithid de chruinneachadh. mar as trice a’ tachairt aig deireadh cearcall togail, deuchainn, agus cleachdadh.

Agus ged a tha cruinneachadh dùthchasach cudromach, mar a sheallas sinn gu h-ìosal, bu chòir a thoirt fa-near gu bheil Quarkus a’ ruith fìor mhath air an inneal Java as cumanta, OpenJDK Hotspot, le taing dha na leasachaidhean coileanaidh a chuir sinn an gnìomh air feadh na stac. Mar sin, bu chòir beachdachadh air cruinneachadh dùthchasach mar bhuannachd a bharrachd a dh'fhaodar a chleachdadh mar a tha thu ag iarraidh no riatanach. Gu dearbh, tha Quarkus gu mòr an urra ri OpenJDK nuair a thig e gu ìomhaighean dùthchasach. Agus tha am modh dev, a tha air gabhail ris gu blàth le luchd-leasachaidh, a’ dèanamh cinnteach gu bheil deuchainn cha mhòr sa bhad air atharrachaidhean mar thoradh air na comasan adhartach ann an cur an gnìomh còd fiùghantach a chaidh a chuir an gnìomh ann an Hotspot. A bharrachd air an sin, nuair a thathar a’ cruthachadh ìomhaighean dùthchasach GraalVM, thathas a’ cleachdadh leabharlann clas OpenJDK agus comasan HotSpot.

Mar sin carson a tha feum agad air cruinneachadh dùthchasach ma tha a h-uile dad air a mheudachadh gu foirfe mar-thà? Feuchaidh sinn ris a’ cheist seo a fhreagairt gu h-ìosal.

Feuch an tòisich sinn leis na tha follaiseach: tha eòlas farsaing aig Red Hat a ’dèanamh an fheum as fheàrr de JVMs, stacan agus frèaman rè leasachadh pròiseict JBoss, a’ gabhail a-steach:

  • A’ chiad fhrithealaiche tagraidh a bhith ag obair san sgòth air an àrd-ùrlar Red Red OpenShift.
  • A 'chiad fhrithealaiche aplacaid airson ruith air coimpiutairean Plugin PC.
  • A’ chiad fhrithealaiche tagraidh a ruitheas air adhart Pi-sùbh-craoibh.
  • Raon de phròiseactan a 'ruith air innealan Android.

Tha sinn air a bhith a’ dèiligeadh ris na dùbhlain a tha an lùib a bhith a’ ruith thagraidhean Java san sgòth agus air innealan le goireasan cuibhrichte (leugh: IoT) airson grunn bhliadhnaichean agus tha sinn air ionnsachadh a’ chuid as fheàrr fhaighinn às an JVM a thaobh coileanadh agus optimization cuimhne. Coltach ri mòran eile, tha sinn air a bhith ag obair le cruinneachadh dùthchasach de thagraidhean Java airson ùine mhòr troimhe G.C.J., eòin, JET excel agus eadhon Dalvik agus tha sinn gu math mothachail air na buannachdan agus na h-eas-bhuannachdan a tha aig an dòigh-obrach seo (mar eisimpleir, an dileab a bhith a’ taghadh eadar uile-choitcheannas “tog aon uair - ruith an àite sam bith” agus an fhìrinn gu bheil tagraidhean cruinnichte nas lugha agus ruith nas luaithe).

Carson a tha e cudromach beachdachadh air na buannachdan agus na h-eas-bhuannachdan sin? Leis gu bheil an co-mheas aca a’ fàs cinnteach ann an cuid de shuidheachaidhean:

  • Mar eisimpleir, ann an àrainneachdan gun fhrithealaiche / air a stiùireadh le tachartas far a bheil feumaidh seirbheisean dìreach tòiseachadh ann an àm fìor (cruaidh no bog) gus am bi ùine ann airson freagairt a thoirt do thachartasan. Eu-coltach ri seirbheisean seasmhach fad-ùine, an seo tha fad tòiseachadh fuar a’ meudachadh gu mòr an ùine freagairt do iarrtas. Bidh an JVM fhathast a’ toirt mòran ùine airson tòiseachadh, agus ged a dh’ fhaodar seo a lughdachadh ann an cuid de chùisean le dòighean bathar-cruaidh fìor, faodaidh an eadar-dhealachadh eadar aon diog agus 5 milliseconds a bhith mar an eadar-dhealachadh eadar beatha agus bàs. Faodaidh, an seo faodaidh tu cluich timcheall le bhith a ’cruthachadh tèarmann teth de dh’ innealan Java (a rinn sinn, mar eisimpleir, leis a’ giùlan OpenWhisk gu Knative), ach chan eil seo ann fhèin a’ gealltainn gum bi JVM gu leòr ann airson iarrtasan a làimhseachadh mar na lannan luchd. Agus bho shealladh eaconamach, is dòcha nach e seo an roghainn as ceart.
  • A bharrachd air an sin, tha taobh eile ann a bhios gu tric a’ nochdadh: ioma-ghabhaltas. A dh’ aindeoin gu bheil JVMs air a thighinn gu math faisg air siostaman obrachaidh nan comasan, chan eil iad fhathast comasach air na tha sinn cho eòlach a dhèanamh ann an Linux - pròiseasan aonaranachd. Mar sin, faodaidh fàilligeadh aon snàithlean an inneal Java gu lèir a thoirt sìos. Bidh mòran dhaoine a’ feuchainn ri faighinn timcheall air an ana-cothrom seo le bhith a’ coisrigeadh JVM air leth airson tagraidhean gach neach-cleachdaidh gus builean fàiligeadh a lughdachadh. Tha seo gu math loidsigeach, ach chan eil e a 'freagairt gu math ri sgèileadh.
  • A bharrachd air an sin, airson tagraidhean a tha ag amas air sgòthan, tha dùmhlachd nan seirbheisean air an aoigh na chomharradh cudromach. Eadar-ghluasad gu modh-obrach 12 factaran tagraidh, microservices agus Kubernetes ag àrdachadh an àireamh de innealan Java gach tagradh. Is e sin, air an aon làimh, tha seo uile a 'toirt seachad elasticity agus earbsachd, ach aig an aon àm tha caitheamh cuimhne bunaiteach a thaobh seirbheis cuideachd a' meudachadh, agus chan eil cuid de na cosgaisean sin an-còmhnaidh riatanach. Tha faidhlichean so-ghnìomhaichte air an cur ri chèile gu staitistigeil a’ faighinn buannachd an seo mar thoradh air diofar dhòighean optimization, leithid cuir às do chòd marbh aig ìre ìosal, nuair nach eil an ìomhaigh mu dheireadh a’ toirt a-steach ach na pàirtean sin de na frèaman (a’ gabhail a-steach an JDK fhèin) a bhios an t-seirbheis a’ cleachdadh. Mar sin, bidh cruinneachadh dùthchasach Quarkus a ’cuideachadh le bhith a’ suidheachadh suidheachadh seirbheis dùmhail air an aoigh gun a bhith a ’toirt buaidh air tèarainteachd.

Gu fìrinneach, tha na h-argamaidean gu h-àrd mar-thà gu leòr airson tuigse fhaighinn air fìreanachadh cruinneachadh dùthchasach bho shealladh com-pàirtichean pròiseact Quarkus. Ach, tha adhbhar eile, neo-theicnigeach, ach cuideachd cudromach: anns na bliadhnachan mu dheireadh, tha mòran de luchd-prògramaidh agus companaidhean leasachaidh air Java a thrèigsinn airson cànanan prògramadh ùra, a 'creidsinn gu bheil Java, còmhla ris na JVMs, na stacan agus na frèaman aige, air fàs cuideachd. cuimhne-acras, ro shlaodach, msaa.

Ach, tha e na chleachdadh an aon inneal a chleachdadh gus fuasgladh fhaighinn air duilgheadas sam bith chan eil e an-còmhnaidh ceart. Aig amannan tha e nas fheàrr ceum air ais a ghabhail agus coimhead airson rudeigin eile. Agus ma bheir Quarkus air daoine stad agus smaoineachadh, tha sin math airson eag-shiostam Java gu lèir. Tha Quarkus a’ riochdachadh sealladh ùr-ghnàthach air mar a thogas tu tagraidhean nas èifeachdaiche, a’ dèanamh Java nas buntainniche do ailtireachd tagraidh ùr leithid gun fhrithealaiche. A bharrachd air an sin, air sgàth cho farsaing ‘s a tha e, tha sinn an dòchas gum bi eag-shiostam iomlan de leudachaidhean Java aig Quarkus, a’ meudachadh gu mòr an àireamh de fhrèaman a bheir taic do chruinneachadh dùthchasach ann an tagraidhean a-mach às a ’bhogsa.

Source: www.habr.com

Cuir beachd ann