JavaRush /Java Blog /Random-TK /Mikroservis arhitekturasy: oňaýsyz taraplary

Mikroservis arhitekturasy: oňaýsyz taraplary

Toparda çap edildi
Mikroservisler, uly bir programmany ýönekeý API arkaly biri-biri bilen aragatnaşyk saklaýan, birleşdirilen modullara bölmegiň usulydyr.
Mikroservis arhitekturasy: oňaýly taraplary - 1
Soňky döwürde diňe lal adamlar mikroservis hakda gürleşmediler. Bu barha meşhur bolýar. Modully binagärlik stili, esasan, bulut esasly gurşawlara laýyk gelýär we meşhurlygy artýar. Jikme-jikliklere girmezden ozal, geliň hemme zada guş gözi bilen seredeliň . Şonuň üçin: Microservices uly taslamany kiçi, garaşsyz we birleşdirilen modullara bölmegiň usulydyr. Garaşsyz modullar anyk kesgitlenen we aýry-aýry meseleler üçin jogapkär we ýönekeý we elýeterli API arkaly biri-biri bilen aragatnaşyk saklaýar. Başgaça aýdylanda, mikroservisler, esasanam web programmalaryny çylşyrymly dizaýn etmek üçin başga bir binagärlik stili. Emma SOA (Hyzmatlara gönükdirilen arhitektura) ýaly bar bolan binagärlik çözgütleriniň erbet tarapy näme? SOA ulanyp ýazylan häzirki zaman kärhana çözgütleriniň köpüsi gaty gowy işleýän ýaly. Bu günler pudagyň ýüzbe-ýüz bolýan käbir kynçylyklary barada gürleşmek üçin ajaýyp pursat bolup biler ... Geliň, ýönekeý bir mysaldan başlalyň. Java-da ýazylan nusgawy programmany işletmeli diýeliň. Ilki bilen UI bilen täsirleşjek birnäçe komponent we ahyrky maglumatlar bazasyna elýeterli boljak maglumat bazasy gatlagyny ulanyjy interfeýsini, soň bolsa iş logika gatlagyny ösdürerin. Indi programmany işletmek isleýändigime görä, WAR / EAR / JAR dörederin we ony serwerde ýerleşdirerin (JBoss, Tomcat ýa-da WebLogic ýaly). Bularyň hemmesi bir ýerde ýerine ýetirilendigi sebäpli, ähli komponentleriň bir ýerde bolandygyny aňladýan monolit programma alýaryn ... Suratdaky mysal:
Mikroservis arhitekturasy: oňaýly taraplary - 2
Megerem, bu çemeleşmäni eýýäm tanaýarsyňyz we ulandyňyz, ýöne pikir bu binagärlik çözgüdini ulanyp, döredijileriň nähili kynçylyklara duçar boljakdygyny görkezmek üçin bu mysaldan peýdalanmakdyr. Monolit ulanylyşy : kynçylyklar
  • Programma ulaldygyça, her gezek açylanda ösüş gurşawyna aşa ýükläp biljek ýazylan kod mukdary hem köpelýär. Bu, elbetde, işläp düzüjiniň netijeliligini peseldýär.
  • Hemme zady bir ýerde gurnamalydygy sebäpli, başga bir programmirleme diline geçmek ýa-da başga tehnologiýalara geçmek uly mesele bolup durýar. Mysal üçin, Java-da bir programma ýazdyňyz, biraz wagt geçensoň Kotlin çykdy we ony täzeden ýazmak islediňiz, sebäbi has sowuk, has gowy, has çalt wagyz edildi. Monolit ulanylyşy bilen, hatda gaýtadan işlemek hakda pikir etmek hem hakyky agyrylara sebäp bolar, prosesiň özi hakda-da aýtmaz. Häzirki wagtda şeýle edilen köp sanly programma bar we kod setirleriniň sany diýseň ajaýyp.
  • Komponentleriň haýsydyr biri haýsydyr bir sebäbe görä işlemegini bes etse , tutuş programma hem ýykylar. Awtorizasiýa, töleg, taryh we ş.m. ýaly modullary bolan web programmasynyň bardygyny göz öňüne getiriň. Näme üçindir olaryň biri döwülýär. Bu, işewürlik we netijede döredijiler üçin gaty täsir galdyrýar.
  • Monolit amaly ulaltmak diňe şol bir görnüşdäki başga bir programmany ýokarlandyrmak arkaly gazanylyp bilner. Onlyöne tutuş bir programma däl-de, diňe bir komponenti ulaltmaly bolsa näme etmeli. Näçe serişde biderek sarp ediler? ...
  • Bu programmanyň ösüş prosesine we gurnama prosesine uly täsir edip biler. Programma näçe uly bolsa, döredijileriň programmany kiçi iş böleklerine bölmegi şonça möhümdir. Monolit programmasyndaky ähli modullar biri-birine bagly bolany üçin, döredijiler bu modullary biri-birine garaşsyz işläp / gurup bilmeýärler. Döredijiler biri-birine bagly bolansoň, ösüş wagty köpelýär.
Şol bir wagtyň özünde, mikroservisleriň manysyna, ýagny SOA stili bilen ýitirilen çeýeligi dikeltmek üçin nädip ulanyp boljakdygyna göz aýlamaga we düşünmäge taýýardyrys. Halas etmek üçin Hudaý mikroservisleri Islendik binagärlik çözgüdiniň iň möhüm aýratynlyklaryndan biri ulalmakdyr. Ilkinji gezek mikroservisleri öwrenip otyrkam, hemme zadyň “Giňeldiş sungaty” kitabyndan getirilen sözlere gaty meňzeýändigini gördüm. Bu ajaýyp başlangyç we ara alyp maslahatlaşmak üçin ýer. Bu kitap üç ölçegli ulalmak ulgamyny suratlandyrýan "Göwrümli kub" diýilýän modeli kesgitleýär:
Mikroservis arhitekturasy: oňaýly taraplary - 3
Görşüňiz ýaly, X oky "keseligine ulalmagy" suratlandyrýar (monolit arhitekturasy üçin hem görýäris), Y oky dürli hyzmat komponentlerini bölmek manysynda ulalmagy aňladýar . Z okunyň pikiri, maglumatlar bölünende we programma maglumatlaryň nirede ýerleşýändigine haýyşlar iberilende düşünilýär. .Agny, olaryň hemmesi bir ýerde däl. Y okunyň pikiri, has jikme-jik üns berjek pikirimizdir. Bu ok funksional bölünmegi aňladýar . Bu strategiýada dürli hyzmatlar garaşsyz hyzmatlar hökmünde kabul edilip bilner. Şol sebäpli, programmany diňe hemme zat ýerine ýetirilende gurnamak bilen, işläp düzüjiler aýry-aýry hyzmatlary biri-birine garaşsyz gurup bilerler we beýlekileriň modullarynda işlemegine garaşmazlar. Bu diňe bir ösüş wagtyny gowulaşdyrman, eýsem programma bölekleriniň galan bölekleri barada aladalanman, üýtgetmek we täzeden üýtgetmek üçin çeýeligi hödürleýär. Geliň, bu diagrammany öňki monolit bilen deňeşdireliň:
Mikroservis arhitekturasy: oňaýly taraplary - 4
Mikroservisler: peýdalary Mikroservisleriň peýdalary Amazon, Netflix, Ebay ýaly kärhana döredijileri bu çemeleşmäni ulanyp başlamaga ynandyrmak üçin ýeterlik ýaly bolup görünýär. Monolit arhitektura goşundylaryndan tapawutlylykda mikroservisler:
  • Komponent şowsuzlygynyň izolýasiýasyny gowulandyrýar: Uly programmalar, ýekeje modul şowsuz bolsa-da, netijeli işlemegini dowam etdirip biler.
  • Programmanyň bir tehnologiýa toplumyna bolan ygrarlylygyny aradan aýyrýar: haýsydyr bir hyzmatda täze tehnologiýa toplumyny synap görmek isleseňiz, dowam ediň. Baglylyklar monolit bilen deňeşdirilende has ýeňil bolar we hemme zady yzyna gaýtarmak has aňsat bolar. Bir programmada kod az bolsa, işlemek aňsat.
  • Täze işgärlere hyzmatyň işleýşine düşünmegi has aňsatlaşdyrýar.
Mikroservisler: gurnamagyň we wirtuallaşdyrmagyň aýratynlyklary Indi mikroservisleriň nämedigine düşündik. Iň uly artykmaçlygy, birden köp WAR / EAR / JAR arhiwi bilen gurnalanlygydyr. Howöne nädip guruldy? Konteýnerleriň içindäki mikroservisleri gurmagyň iň gowy usuly. Konteýner, konteýner gurnalan apparat ulgamynyň çeşmelerine elýeterliligi izolirlemäge zerur gurşaw bilen düzülen doly gurlan wirtual operasiýa ulgamydyr. Bazardaky iň meşhur çözgüt, elbetde Docker . AWS ýaly IaaS-dan (hyzmat hökmünde infrastruktura) wirtual maşynlar hem mikroservisleri gurmak üçin oňat işläp biler, ýöne has ýeňil mikroservisler wirtual maşynyň içindäki ähli çeşmeleri ulanyp bilmez, bu bolsa girdejililigini peseldip biler. Şeýle hem, OSGI (Açyk hyzmat şlýuz başlangyjy) bukjasyny ulanyp, mikroservisleriňizi gurnap bilersiňiz . Bu ýagdaýda ähli mikroservisler bir JVM-de işlär, ýöne bu gözegçilik we izolýasiýa arasyndaky söwda meselesini öz içine alýar. Mikroservisler: adetmezçilikler Diňe “bularyň hemmesi salkyn” we “muny öň görmändigimiz” kemçilikleriň ýokdugyny aňlatmaýar. Aşakda mikroservis arhitekturasynyň getirýän agyry ýerleriniň sanawy:
  • Paýlanan ulgamlary ösdürmek kyn bolup biler. Bu diýmek bilen, ähli komponentler indi garaşsyz hyzmatlar diýmek isleýärin - modullaryň arasynda geçýän haýyşlary gaty ünsli çözmeli. Bir modulyň jogap bermeýän, ulgamy ýykmazlygy üçin goşmaça kod ýazmaga mejbur edýän senariýa bolup biler. Uzakdaky jaňlar gijä galýan bolsa, bu has kyn bolup biler .
  • Birnäçe maglumat bazasy we amallary dolandyrmak hakyky agyry bolup biler.
  • mikroservis programmalaryny barlamak kyn bolup biler. Monolit programmany ulanyp, diňe WAR / EAR / JAR arhiwini serwerde işletmeli we maglumatlar bazasyna birikdirilendigine göz ýetirmeli. Mikroservislerde synag başlamazdan ozal her aýratyn hyzmat başlamaly.
  • Programmalary gurnamak kyn bolup biler. WAR konteýner ýaly gurmak aňsat bolmadyk birnäçe hyzmatlaryň töwereginde koordinasiýa talap edip biler.
.... Elbetde, dogry gurallar we çemeleşmeler bilen bu kemçilikleriň öňüni alyp bolar. Emma olaryň özleri goldaw talap edýärler we ähli meseleleri doly çözmeýärler. Makala CloudAcademy web sahypasyndan terjime edildi . Mugt terjime. Her kim teswirlerde ähli pikirlerini aýdyp biler. Elbetde okalar. Asyl makala My Github hasaby
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION