Isingeniso Iyini "inkontileka" kumongo wokusebenzelana kwesevisi? Esimweni samamojula wezinsizakalo ezisebenzisanayo, umbuzo ongenakugwenywa uyavela: ? Emikhiqizweni ye-IT, "inkontileka" imelela ukuqonda okusemthethweni kokuthi egeleza phakathi kwezinhlelo nokuthi idluliselwa . Lokhu kuhlanganisa ifomethi yedatha (i-JSON, i-Protobuf, njll.), izakhi zesakhiwo (izinkambu, izinhlobo zedatha), iphrothokholi yokuxhumana (REST, gRPC, olayini bemilayezo), nokunye ukucaciswa. Ngabe ukuxhumana kwenzeka ngamiphi imithetho iyiphi idatha kanjani Inkontileka iqinisekisa ukuvuleka (wonke umuntu uyazi ukuthi yini eyamukelwe futhi ithunyelwa), ukubikezela (singabuyekeza inkontileka futhi sigcine izinguqulo), nokwethembeka (isistimu yethu ngeke ihluleke uma senza izinguquko eziphethwe kahle). Kungani abantu bevame ukukhetha itafula kusizindalwazi njengokuthi “inkontileka.” Empeleni, nakuba wonke umuntu ekhuluma ngama-microservices, “izinkontileka” nama-API, sivame ukubona abantu besebenzisa le ndlela: “Kungani ungadali ithebula okwabelwana ngalo kusizindalwazi esikhundleni sokwakha ama-API?” Uma yonke into ibilokhu igcinwe ohlelweni olulodwa lwe-DB ngaphakathi kwenkampani eyodwa, kungani uphinde usungule isondo? Umkhuba womlando noma wenhlangano: Sizobhala, uzofunda ngaphandle kokusetha imithetho yokugunyaza nokuklama ukucaciswa kwe-API. Isimo sengqondo "sokulungisa ngokushesha": Uma usebenza ngamashumi noma amakhulu amagigabhayithi edatha, ukudluliselwa okuqondile kuthebula okwabelwana ngalo kubonakala kulula, kushesha, futhi kunokonga kakhulu, kodwa ekusebenzeni, kudala izinkinga zokukala nokusebenza kanye nezinkinga zobunikazi bedatha. Impikiswano "yedatha enkulu": Ngakho-ke, ngenkathi ukusebenzisa ithebula okwabelwana ngalo ukushintshanisa idatha kungase kubonakale kusebenza kahle futhi kulungiselelwe imiphumela esheshayo, kukhiqiza izinselele ezihlukahlukene zobuchwepheshe nezokuhlela ngokuhamba kwesikhathi. Kodwa-ke, lapho amaqembu ekhetha amathebula okwabelwana ngawo ukuze ashintshisane ngedatha, angase abhekane nezinkinga eziningi phakathi nokuqaliswa. Kungani “Ithebula Kusizindalwazi” Kungesona Inkontileka (nokuthi Kungani Kuyiphethini Emelene Nalokhu). Ukushoda Kwesixhumi Esibonakalayo Esichazwe Ngokucacile Lapho amasevisi exhumana nge-REST/gRPC/GraphQL, anencazelo esemthethweni: I-OpenAPI (Swagger), ama-protobuf schema, noma ama-schema e-GraphQL. Lokhu kuchaza ngokuningiliziwe ukuthi yiziphi izinsiza (amaphoyinti okugcina) atholakalayo, yiziphi izinkambu ezilindelekile, izinhlobo zazo, kanye namafomethi esicelo/empendulo. Uma 'itafula okwabelwana ngalo' lisebenza njengenkontileka ayikho incazelo esemthethweni: Ayikho incazelo esemthethweni yenkontileka; i-schema yethebula kuphela (i-DDL) etholakalayo futhi nalokho akubhaliwe kahle. Noma yikuphi ukuguqulwa okuncane kwesakhiwo sethebula (isb, ukwengeza noma ukususa ikholomu, ukushintsha izinhlobo zedatha) kungase kuthinte amanye amaqembu afunda noma abhalele kuleli thebula. Izinkinga Zokuguqulela Nokuziphendukela Kwemvelo Ukwenza inguqulo ye-API kuwumkhuba ovamile: Singase sibe ne-v1, v2, njalo njalo, futhi singagcina ukuhambisana okusemuva bese kancane kancane sithuthela amaklayenti ezinguqulweni ezintsha. Kumathebula esizindalwazi, sinemisebenzi ye-DDL kuphela (isb, ), ehlanganiswe ngokuqinile nenjini ethile ye-DB futhi edinga ukuphathwa ngokucophelela kokufuduka. ALTER TABLE Alukho uhlelo oluphakathi nendawo olungathumela izexwayiso kubathengi mayelana nezinguquko ze-schema ezidinga ukuthi babuyekeze imibuzo yabo. Ngenxa yalokho, kungase kwenzeke : Othile angathumela engxoxweni, “Kusasa, sishintsha ikholomu X ibe ngu-Y”, kodwa asikho isiqinisekiso sokuthi wonke umuntu uzobe elungile ngesikhathi. amadili “angaphansi kwetafula” Abukho Ubunikazi obucacile Uma kune-API echazwe ngokucacile, kuyabonakala ukuthi ekabani: isevisi esebenza njengomshicileli we-API. Lapho amaqembu amaningi esebenzisa ithebula lesizindalwazi elifanayo kuba nokudideka mayelana nokuthi ubani ozonquma isakhiwo nokuthi yiziphi izinkambu okufanele zigcinwe nokuthi zichazwa kanjani. Ngenxa yalokho, ithebula lingase libe “impahla yomuntu,” futhi lonke ushintsho luba yimfuno: “Kudingeka sihlole nalelo qembu uma lisebenzisa ikholomu endala!” Izinkinga Zokulawula Ukuphepha Nokufinyelela Kunzima ukulandelela ukuthi ubani ongakwazi ukufunda nokubhala etafuleni uma amaqembu amaningi ekwazi ukufinyelela ku-DB. Kukhona ithuba lokuthi izinsiza ezingagunyaziwe zingafinyelela idatha nakuba ibingahloselwe zona. Kulula ukuphatha izindaba ezinjalo nge-API: Ungalawula amalungelo okufinyelela (ubani ongabiza ukuthi yiziphi izindlela), sebenzisa ukufakazela ubuqiniso nokugunyazwa, futhi ugade ukuthi ubani obize ini. Ngetafula, kuyinkimbinkimbi kakhulu. Ukuncika Esakhiweni Sangaphakathi Noma yikuphi ukuguqulwa kwangaphakathi kudatha (ukuhlela kabusha izinkomba, ukwahlukanisa ithebula, ukushintsha i-DB) kuba inkinga yomhlaba wonke. Uma ithebula lisebenza njengesixhumi esibonakalayo somphakathi, umnikazi akakwazi ukwenza izinguquko zangaphakathi ngaphandle kokufaka engozini bonke abafundi nababhali bangaphandle. Amaphuzu Obuhlungu kanye Nezinkinga Ezivamile Ekuziphatheni Ukuxhumanisa Izinguquko Lesi isici esibuhlungu kakhulu: Umuntu wenza ngokwazisa elinye iqembu ukuthi uhlelo luzoshintsha ngakusasa? kanjani Umnikazi udala ithebula elisha eline-schema esibuyekeziwe esihambisana nesidala. Uhlobo oludala luhlala lufinyeleleka kubathengi bamanje futhi umnikazi ubathumelela umlayezo othi, “Isakhiwo esisha siyatholakala; hlola imibhalo kanye nezinsuku zokugcina. Sicela uthuthe kuyilapho zikhona zombili lezi zinguqulo.” Isimo esiyimpumelelo sokubuyekeza inguqulo yethebula: Nokho, esimweni se-OLAP noma ngamavolumu amakhulu edatha, ukugcina amathebula amabili ahambisanayo akuwona umsebenzi ongatheni. Kufanele futhi unqume ukuthi ungayisusa kanjani idatha isuka komdala uyiyise ku-schema esisha. Lokhu ngezinye izikhathi kungadinga isikhathi sokuphumula esihleliwe noma ingqalasizinda eyinkimbinkimbi kakhulu. Le nqubo yethula kokubili ubungozi nomsebenzi owengeziwe. Izinkinga Zobuqotho Bedatha Uma amaqembu amaningi esebenzisa ithebula okwabelwana ngalo ukuze akhethe futhi abuyekeze idatha ebalulekile, ingaba kalula “inkundla yempi.” Umphumela uba ukuthi ingqondo yebhizinisi igcina ihlakazekile kumasevisi ahlukene, futhi akukho ukulawulwa okumaphakathi kobuqotho bedatha. Kuba nzima kakhulu ukwazi ukuthi kungani inkambu ethile igcinwa ngendlela ethile, ubani ongayibuyekeza, futhi kwenzekani uma ishiywa ingenalutho. Ukulungisa iphutha kanye nezinselele zokuqapha Ngokwesibonelo, ake sithi itafula liyaphuka: Ake sithi, kunedatha embi noma othile othathe ilokhi emigqeni ethile ebalulekile. Ukuhlonza umthombo wenkinga ngokuvamile kungadinga ukubuza lonke iqembu elinokufinyelela kwe-DB ukuze linqume ukuthi yimuphi umbuzo obangele inkinga. Ngokuvamile akubonakali: Lokhu kusho ukuthi kungenzeka ukuthi umbuzo weqembu elilodwa ukhiye isizindalwazi, kanti umbuzo welinye iqembu ukhiqiza iphutha elibonakalayo. Ukwehluleka kwenodi eyodwa kudonsela phansi wonke umuntu. Isizindalwazi esabiwe siyiphuzu elilodwa lokwehluleka. Uma yehla, khona-ke izinkonzo eziningi zizokwehla nayo. Uma isizindalwazi sinezinkinga ngokusebenza ngenxa yemibuzo enzima yesevisi eyodwa, wonke amasevisi ahlangabezana nezinkinga. Kumodeli enama-API acacile kanye nobunikazi bedatha, ithimba ngalinye liyizingcweti zokutholakala nokusebenza kwesevisi yalo, ngakho ukwehluleka engxenyeni eyodwa akusabalalisi kwabanye. Ukunikeza ikhophi ehlukile yokufunda kuphela akuyixazululi inkinga. Ukuvumelana okuvamile ukuthi: "Sizokunikeza ikhophi efundwayo kuphela ukuze ukwazi ukubuza ngaphandle kokuthikameze idatha yethu egciniwe." Ekuqaleni, lokho kungase kubhekane nezinkinga ezithile zokulayisha, kodwa: Izinkinga zenguqulo zisekhona. Inkinga enkulu ukuthi, lapho isakhiwo sethebula eliyinhloko sishintsha, isakhiwo se-replica siyashintsha, ngokulibaziseka okuthile. Ukulibaziseka kokuphindaphinda kungabangela izimo zedatha ukuthi zingabikezeli, ikakhulukazi ngamasethi edatha amakhulu. Ubunikazi abukacaci: Ubani ochaza ifomethi, isakhiwo, nemithetho yokusetshenziswa? Isifaniso sisese “ucezu” lwesizindalwazi somunye umuntu. Ungadizayina Kanjani Ukusebenzisana Kwesevisi (Inkontileka Okokuqala) Incazelo yenkontileka ecacile. Izinqubo zesimanje zokuklama (isibonelo, “API Okokuqala” noma “Inkontileka Okokuqala”) ziqala ngencazelo yokusebenzelana esemthethweni. Kusetshenziswa i-OpenAPI/Swagger, protobuf, noma i-GraphQL schemas. Ngale ndlela, kokubili abantu nemishini bayazi ukuthi yiziphi iziphetho ezitholakalayo, yiziphi izinkambu ezidingekayo, nokuthi yiziphi izinhlobo zedatha ezisetshenziswayo. Isevisi njengomnikazi wedatha Kusakhiwo se-microservices (noma i-modular), ukucabanga ukuthi isevisi ngayinye ingumnikazi wedatha yayo ngokuphelele. Ichaza ukwakheka, isitoreji, kanye nengqondo yebhizinisi futhi inikeza i-API yakho konke ukufinyelela kwangaphandle kuleyo API. Akekho ongathinta isizindalwazi 'somunye umuntu': iziphetho ezisemthethweni kuphela noma imicimbi. Lokhu kwenza impilo ibe lula noma nini uma kukhulunywa ngezinguquko futhi kuhlale kucaca ukuthi ubani onecala. Izibonelo Zokusebenzisa I-REST/HTTP: Isevisi ishicilela amaphoyinti okugcina njenge , , njll., futhi amakhasimende enza izicelo ngohlelo lwedatha oluchazwe kahle (DTO). GET /items POST /items Imithetho elandelwayo ye-gRPC / kanambambili: Ku-gRPC/protobuf, isevisi nemilayezo kuchazwa ngokusemthethweni kumafayela we-.proto, futhi izinguquko zenziwa kalula kumafayela we-.proto lapho kuchazwa indlela, isicelo, kanye nempendulo. Okuqhutshwa umcimbi: Isevisi ephethe idatha ishicilela imicimbi kumthengisi efana ne-Kafka noma i-RabbitMQ, futhi ababhalisile bayayidla. Inkontileka lapha yifomethi yomcimbi. Izinguquko zesakhiwo zenziwa ngezihloko ezinguqulo noma imilayezo. Ukulawula Inguqulo Kungakhathaliseki ukuthi iyiphi imodeli, kuyenzeka futhi kubalulekile ukusebenzisa ukulawula inguqulo kusixhumi esibonakalayo. Ngokwesibonelo: Ku-REST, sine-/api/v1/… kanye /api/v2/. Nge-gRPC/protobuf, kunezindlela ezinamandla zokusebenzisana emuva/phambili—izinkambu ezintsha, imilayezo, nezindlela zingangezwa ngaphandle kokuphula amaklayenti amadala kuyilapho ezinye zimakwe njengezihoxisiwe. Ezakhiweni eziqhutshwa umcimbi, ungashicilela amafomethi omcimbi amadala namasha ngokuhambisana kuze kube yilapho bonke abasebenzisi befuduka. Isibopho Esisabalalisiwe Umgomo obalulekile ukuthi ithimba elingumnikazi wedatha linquma ukuthi liyigcina kanjani futhi liyiphathe kanjani, kodwa akufanele linikeze ukufinyelela okuqondile kokubhala kwamanye amasevisi. Abanye kufanele badlule ku-API esikhundleni sokuhlela idatha yangaphandle. Lokhu kuveza ukusabalalisa kwesibopho okucace kakhudlwana: Uma isevisi A yephukile, kusho ukuthi kuwumthwalo wesevisi A ukuyilungisa hhayi omakhelwane bayo. Izibonelo Zokusebenzelana Kwesevisi Ngaphakathi Kwethimba Elilodwa Uma uthi nhlá, uma yonke into iseqenjini elilodwa, kungani uhlanganisa izinto nge-API? Eqinisweni, ngisho noma unomkhiqizo owodwa ohlukaniswe waba amamojuli, ithebula okwabelwana ngalo lingaholela ezinkingeni ezifanayo. Kungcono ukwakha “i-facade” noma “i-microservice” engumnikazi wethebula elithi `ama-oda`, isibonelo, bese amanye amamojula (njengezibalo) abize le facade/isevisi. Lokhu kugcina isimiso senkontileka sicacile futhi kwenza ukulungisa iphutha kube lula. Isibonelo, isevisi yama-oda ingumnikazi wethebula lama-oda, futhi isevisi Yokukhokha ayifinyeleli kulelo thebula ngokuqondile - yenza izingcingo eziya ekugcineni kwesevisi yama-oda ukuze ithole imininingwane ye-oda noma imake i-oda njengelikhokhelwe. Phakathi Kwamaqembu Amabili Ezingeni eliphezulu, lapho amaqembu amabili noma ngaphezulu anesibopho sezindawo ezihlukene, izimiso zihlala zifana. Ngokwesibonelo: Ithimba A linesibopho sesevisi yekhathalogi yomkhiqizo equkethe ulwazi mayelana nento ngayinye (inani, ukutholakala, izimfanelo). Ithimba B linakekela insizakalo yenqola yokuthenga. Uma Ithimba B libuza ngokuqondile ithebula elithi “Ikhathalogi” leThimba A, noma yiziphi izinguquko ze-schema zangaphakathi kokuthi A (isb., ukwengeza izinkambu, ukushintsha ukwakheka) kungase kuthinte Ithimba B. Indlela efanele ukusebenzisa i-API: Ithimba A lihlinzeka ngamaphoyinti okugcina njenge , , njll., futhi Ithimba B lisebenzisa lezo zindlela. Uma u-A ekwazi ukusekela izinguqulo ezindala nezintsha, angakhulula /v2, okunikeza u-B isikhathi sokufuduka. GET /catalog/items GET /catalog/items/{id} Izici zenhlangano kanye nezinzuzo Ukuxhumana Okusobala Ngenkontileka esemthethweni, zonke izinguquko ziyabonakala: ku-Swagger/OpenAPI, amafayela we-.proto, noma imibhalo yomcimbi. Noma isiphi isibuyekezo singaxoxwa kusengaphambili, sihlolwe kahle, futhi sihlelwe, ngamasu okuhambisana okusemuva njengoba kudingeka. Ukuthuthukiswa Okusheshayo Izinguquko kusevisi eyodwa zinomthelela omncane kwezinye. Ithimba akufanele likhathazeke “ngokwephula” omunye umuntu uma liphatha kahle izinkambu ezintsha nezindala noma izindawo zokugcina, liqinisekisa uguquko olushelelayo. Ukuphathwa kokufinyelela nokuvikeleka Amasango e-API, ukuqinisekiswa, nokugunyazwa (JWT, OAuth) kuyindinganiso yezinsizakalo, kodwa cishe akunakwenzeka ngetafula okwabelwana ngalo. Kulula ukushuna kahle ukufinyelela (ubani ongabiza ukuthi yiziphi izindlela), gcina amalogi, ulandelele izibalo zokusetshenziswa, futhi ubeke ama-quota. Lokhu kwenza uhlelo luphephe futhi lubikezelwe. Isiphetho Ithebula okwabelwana ngalo kusizindalwazi liwumniningwane wokuqaliswa esikhundleni sesivumelwano phakathi kwezinsizakalo ezingabhekwa njengenkontileka. Izinkinga eziningi (inguqulo eyinkimbinkimbi, izinguquko eziyisiphithiphithi, ubunikazi obungacacile, ukuphepha, nezingozi zokusebenza) zenza le ndlela ingasebenziseki ngokuhamba kwesikhathi. Indlela efanele okusho ukuchaza ukusebenzisana ngokuklama okusemthethweni nokulandela isimiso sokuthi isevisi ngayinye ihlala ingumnikazi wedatha yayo. Lokhu akusizi nje kuphela ukwehlisa isikweletu sobuchwepheshe kodwa futhi kukhulisa ukubonakala, kusheshisa ukuthuthukiswa komkhiqizo, futhi kunika amandla izinguquko eziphephile ngaphandle kokuzibandakanya ekucimeni umlilo ngokusebenzisa izikimu zesizindalwazi. yiNkontileka Yokuqala Kokubili kuyinkinga yezobuchwepheshe (indlela yokuklama nokuhlanganisa) kanye nenkinga yenhlangano (indlela amaqembu axhumana ngayo futhi alawule ngayo izinguquko). Uma ufuna umkhiqizo wakho ukhule ngaphandle kokubhekana nezimo eziphuthumayo ezingapheli mayelana nezikimu zesizindalwazi, kufanele uqale ukucabanga ngokwezinkontileka kunokufinyelela kusizindalwazi esiqondile.