Ndikukhulupirira kuti mutuwu udapangitsa kuti anthu azichita bwino - "chabwino, ayambiranso ..." Koma ndiroleni ndikukopeni kwa mphindi 5-10, ndipo ndiyesetsa kuti ndisakhumudwitse zomwe mukuyembekezera.
Mapangidwe a nkhaniyi adzakhala motere: mawu omveka amatengedwa ndipo "chirengedwe" cha kutuluka kwa chisokonezo ichi chikuwululidwa. Ndikukhulupirira kuti izi zikuthandizani kuti muyang'ane pa chisankho cha kusinthana kwa data pamapulojekiti anu kuchokera ku ngodya yatsopano.
Kuti ndimvetse bwino zomwe RPC ndi, ndikulingalira kuganizira muyezo
Zopempha za RPC zimakhala zachangu komanso zogwira mtima chifukwa zimakulolani kuti mupange zopempha zamagulu.
Chowonadi ndichakuti mu RPC mutha kuyimba njira zingapo nthawi imodzi pakupempha kumodzi. Mwachitsanzo, pangani wogwiritsa ntchito, onjezani avatar kwa iye ndipo, popemphanso chimodzimodzi, mulembetse ku mitu ina. Pempho limodzi lokha, ndipo phindu lotani!
Zowonadi, ngati muli ndi node imodzi yokha yakumbuyo, idzawoneka mwachangu ndi pempho la batch. Chifukwa zopempha zitatu za REST zidzafuna zowonjezera katatu kuchokera kumalo amodzi kuti akhazikitse maulumikizidwe.
Dziwani kuti pempho loyamba pankhani ya REST liyenera kubweza ID ya wogwiritsa ntchito kuti zopempha zotsatila zichitike. Zomwe zimasokonezanso zotsatira zake zonse.
Koma zomangira zotere zitha kupezeka mumayankho amkati ndi Enterprise. Monga chomaliza, mumapulojekiti ang'onoang'ono a WEB. Koma mayankho a WEB athunthu, komanso omwe amatchedwa HighLoad, sali oyenera kumanga. Zomangamanga zawo ziyenera kukwaniritsa zofunikira za kupezeka kwakukulu ndi katundu. Ndipo chithunzi chikusintha.
Njira zogwirira ntchito pazachitukuko zofanana ndi zomwezo zimayikidwa zobiriwira. Zindikirani momwe RPC ikuchitira tsopano. Pempho limagwiritsa ntchito zomangamanga pa mwendo umodzi wokha kuchokera ku balancer kupita ku backend. Ngakhale kuti REST imatayikabe pempho loyamba, imapanga nthawi yotayika pogwiritsa ntchito zomangamanga zonse.
Ndikokwanira kulowa muzolemba osati zopempha ziwiri zolemeretsa, koma, titi, zisanu kapena khumi ... ndi yankho la funso lakuti "ndani amapambana tsopano?" sizikudziwika.
Ndikukupemphani kuti tiyang'ane mozama za vutoli. Chithunzichi chikuwonetsa momwe njira zogwirira ntchito zimagwiritsidwira ntchito, koma zomangamanga sizimangokhala panjira. Chigawo chofunikira cha zomangamanga zolemetsa kwambiri ndi ma cache. Tiyeni tsopano titengere mtundu wina wa ogwiritsa ntchito. Mobwerezabwereza. Tinene ka 32.
Onani momwe zomangamanga za RPC zasinthiratu kuti zikwaniritse zofunikira za katundu wambiri. Chinthucho ndikuti REST imagwiritsa ntchito mphamvu zonse za HTTP protocol, mosiyana ndi RPC. Pachithunzi pamwambapa, mphamvu iyi imakwaniritsidwa kudzera munjira yopempha - GET.
Njira za HTTP, mwa zina, zili ndi njira zosungira. Mutha kuwapeza pazolembedwa pa
Chifukwa chake, RPC siyitha kugwiritsa ntchito bwino ma cache a zomangamanga. Izi zimabweretsa kufunikira kwa "kulowetsa" ma cache a mapulogalamu. Chithunzichi chikuwonetsa Redis mu gawoli. Cache ya pulogalamuyo, imafunanso kuti wopanga mapulogalamuwo awonjezere kachidindo kowonjezera komanso kusintha kowoneka bwino pamapangidwewo.
Tiyeni tsopano tiwerengere zopempha zingati za REST ndi RPC "zinabereka" pazomwe zikuganiziridwa?
Zopempha
Makalata Obwera
ku backend
ku DBMS
ku cache yofewa (Redis)
TOTAL
Bwerani
1 / 32 *
1
1
0
3 / 35
CPR
32
32
1
31
96
Poyerekeza ndi chiwembu choyamba, kusiyana kuli kodabwitsa. Tsopano phindu la REST likuwonekera. Koma ndikupempha kuti ndisayime pamenepo. Zomangamanga zomwe zapangidwa zikuphatikizapo CDN. Nthawi zambiri imathetsanso nkhani yolimbana ndi DDoS ndi DoS. Timapeza:
Apa ndipamene zinthu zimakhala zoyipa kwambiri kwa RPC. RPC sikutha kupereka ntchito ku CDN. Titha kungodalira machitidwe kuti tithane ndi ziwopsezo.
Ndizotheka kutha apa? Ndipo kachiwiri, ayi. Njira za HTTP, monga tafotokozera pamwambapa, zili ndi "matsenga" awo. Ndipo sizopanda chifukwa kuti njira ya GET imagwiritsidwa ntchito kwambiri pa intaneti. Zindikirani kuti njirayi imatha kupeza gawo lachindunji, imatha kukhazikitsa zinthu zomwe zida zogwirira ntchito zimatha kutanthauzira zisanayambe kuwongolera ku code yanu, ndi zina zotero. Zonsezi zimakupatsani mwayi wopanga zida zosinthika, zosinthika zomwe zimatha kuthana ndi zopempha zambiri. Koma mu RPC njira iyi ... imanyalanyazidwa.
Nanga bwanji nthano yoti zopempha za batch (RPC) ndizofulumira kwambiri? Inemwini, zikuwoneka kwa ine kuti ma projekiti ambiri samafika pamlingo wa chitukuko pomwe REST imatha kuwonetsa mphamvu zake. Komanso, m'mapulojekiti ang'onoang'ono, amakhala wokonzeka kusonyeza zofooka zake.
Kusankha kwa REST kapena RPC sikungosankha mwakufuna kwa munthu mu polojekiti. Chisankhochi chiyenera kukwaniritsa zofunikira za polojekitiyi. Ngati polojekiti imatha kufinya chilichonse chomwe ingathe kuchokera mu REST, ndipo ikufunikadi, ndiye kuti REST idzakhala chisankho chabwino kwambiri.
Koma ngati, kuti mupeze zabwino zonse za REST, muyenera kulemba ganyu akatswiri a devops kuti polojekitiyi ikulitsidwe mwachangu, oyang'anira kuti aziyang'anira zomangamanga, womanga kuti apange zigawo zonse za ntchito ya WEB ... , panthawi yomweyi, amagulitsa mapaketi atatu a margarine patsiku ... protocol iyi ndiyothandiza kwambiri. Sizidzafunika kudziwa mozama momwe ma cache ndi zomangamanga zimagwirira ntchito, koma zidzangoyang'ana wopanga mafoni osavuta komanso omveka kunjira zomwe akufuna. Bizinesi idzakhala yosangalala.
Zopempha za RPC ndizodalirika chifukwa zimatha kupereka zopempha zamagulu mkati mwakuchitako kamodzi
Katunduyu wa RPC ndi mwayi wotsimikizika, chifukwa Ndikosavuta kusunga nkhokwe mosasinthasintha. Koma ndi REST zimakhala zovuta kwambiri. Zopempha zimatha kufika mosagwirizana ndi ma node osiyanasiyana akumbuyo.
"Zoyipa" izi za REST ndiye mbali yakutsogolo yaubwino wake womwe wafotokozedwa pamwambapa - kuthekera kogwiritsa ntchito bwino zida zonse zogwirira ntchito. Ngati zomangamanga sizinapangidwe bwino, ndipo makamaka ngati mapangidwe a polojekitiyo ndi database makamaka sizinapangidwe bwino, ndiye kuti izi ndi zowawa kwambiri.
Koma kodi zopempha zamagulu ndizodalirika monga zikuwonekera? Tiyeni tiwone mlandu: timapanga wogwiritsa ntchito, kukulitsa mbiri yake ndi mafotokozedwe ena ndikumutumizira SMS yokhala ndi chinsinsi kuti amalize kulembetsa. Iwo. mafoni atatu mu pempho limodzi la batch.
Tiyeni tiwone chithunzicho. Imapereka maziko okhala ndi zinthu zambiri zopezeka. Pali njira ziwiri zoyankhulirana zodziyimira pawokha zokhala ndi zipata za SMS. Koma... tikuwona chiyani? Mukatumiza SMS, cholakwika 503 chimachitika - ntchitoyo siyikupezeka kwakanthawi. Chifukwa Kutumiza kwa SMS kumayikidwa mu pempho la batch, ndiye pempho lonse liyenera kubwezeredwa. Zochita mu DBMS zathetsedwa. Wofuna chithandizo amalandira cholakwika.
Kuyesera kotsatira ndi lotale. Mwina pempho lidzakhudzanso mfundo yomweyi mobwerezabwereza kubwezera zolakwika, kapena mudzakhala ndi mwayi ndipo idzachitidwa. Koma chinthu chachikulu ndi chakuti kamodzi kokha zomangamanga zathu zakhala zikugwira ntchito pachabe. Panali katundu, koma palibe phindu.
Chabwino, tiyerekeze kuti tadzipusitsa tokha (!) ndikuganizira njirayo pomwe pempho litha kumalizidwa bwino. Ndipo tidzayesanso kutsiriza zina zonse pakapita nthawi (Iti? Kodi kutsogolo kumasankha?). Koma lotaleyo sinasinthebe. Pempho lotumiza SMS lili ndi mwayi wa 50/50 wolepheranso.
Gwirizanani, kuchokera kumbali ya kasitomala, ntchitoyo sikuwoneka ngati yodalirika monga momwe tingafunira ... nanga bwanji REST?
REST imagwiritsanso ntchito matsenga a HTTP, koma tsopano ndi ma code oyankha. Pamene cholakwika 503 chikachitika pachipata cha SMS, kumbuyo kumawulutsa cholakwika ichi kwa balancer. Wolinganiza amalandira cholakwika ichi ndipo popanda kuswa kulumikizana ndi kasitomala, amatumiza pempho ku node ina, yomwe imayendetsa bwino pempholo. Iwo. kasitomala amalandira zotsatira zomwe zikuyembekezeredwa, ndipo zowonongeka zimatsimikizira mutu wake wapamwamba wa "kufikika kwambiri". Wogwiritsa ntchito ndi wokondwa.
Ndipo si zokhazo ayi. Balancer sanangolandira nambala yoyankhira ya 503. Poyankha, malinga ndi muyezo, ndi bwino kupereka code iyi ndi mutu wa "Retry-After". Mutuwu umamveketsa bwino kwa balancer kuti sikoyenera kusokoneza node iyi panjirayi kwa nthawi yodziwika. Ndipo zopempha zotsatila zotumiza SMS zidzatumizidwa mwachindunji ku node yomwe ilibe vuto ndi chipata cha SMS.
Monga tikuonera, kudalirika kwa JSON-RPC ndikokwanira. Zowonadi, ndikosavuta kulinganiza kusasinthika mu database. Koma nsembeyo, pamenepa, idzakhala yodalirika ya dongosolo lonse.
Mapeto ake ndi ofanana kwambiri ndi am'mbuyomu. Zomangamanga zikakhala zosavuta, kuwonekera kwa JSON-RPC ndikokwanira. Ngati polojekitiyi ikuphatikizapo kupezeka kwakukulu ndi katundu wambiri, REST imawoneka ngati yolondola kwambiri, ngakhale yovuta kwambiri, yankho.
Malo olowera ku REST ndiwotsika
Ndikuganiza kuti kusanthula pamwambapa, kutsutsa zomwe zakhazikitsidwa pa RPC, zikuwonetsa momveka bwino kuti malo olowera mu REST mosakayikira ndi apamwamba kuposa RPC. Izi ndichifukwa chofuna kumvetsetsa mozama momwe HTTP imagwirira ntchito, komanso kufunikira kokhala ndi chidziwitso chokwanira pazinthu zomwe zilipo kale zomwe zingagwiritsidwe ntchito ndi zomwe ziyenera kugwiritsidwa ntchito mu WEB.
Nanga ndichifukwa chiyani anthu ambiri amaganiza kuti REST ikhala yosavuta? Lingaliro langa ndikuti kuphweka kumeneku kumachokera ku REST imadziwonetsera. Iwo. REST si protocol koma lingaliro ... REST ilibe muyezo, pali malangizo ena ... REST ndizovuta kuposa HTTP. Ufulu wowonekera ndi chisokonezo zimakopa "ojambula aulere".
Zachidziwikire, REST siyovuta kuposa HTTP. Koma HTTP yokha ndi protocol yopangidwa bwino yomwe yatsimikizira kufunika kwake kwazaka zambiri. Ngati palibe kumvetsetsa kwakuya kwa HTTP palokha, ndiye kuti REST sitingaweruzidwe.
Koma za RPC - mutha. Ndikokwanira kutenga ndondomeko yake. Momwemonso muyenera
Ndikukhulupirira kuti sindinataye nthawi yanu.
Source: www.habr.com