JSON-RPC? Fa'amalo malolo

JSON-RPC? Fa'amalo malolo

Ou te mautinoa o le ulutala na mafua ai se tali lelei - "ia, ua toe amata ..." Ae seʻi ou puʻeina lou mafaufau mo le 5-10 minute, ma o le a ou taumafai e aua le faʻanoanoa ou manaʻoga.

O le faʻatulagaga o le tusiga o le a faʻapea: o se faʻamatalaga faʻapitoa e ave ma faʻaalia le "natura" o le tulaʻi mai o lenei faʻataʻitaʻiga. Ou te faʻamoemoe o lenei mea o le a faʻatagaina oe e vaʻavaʻai i le filifiliga o faʻamatalaga fesuiaiga o faʻamatalaga i au poloketi mai se tulaga fou.

Ina ia manino e uiga i le RPC, ou te fautua atu e mafaufau i le tulaga masani JSON-RPC 2.0. Faatasi ai ma le REST e leai se manino. Ma e le tatau. Mea uma e tatau ona e iloa e uiga i le REST - e le mafai ona iloa HTTP.

O talosaga a le RPC e sili atu ona vave ma sili atu ona lelei aua latou te faʻatagaina oe e fai ni faʻatonuga.

O le manatu o le RPC e mafai ona e valaʻau ni faʻagasologa i le taimi e tasi i le tasi talosaga. Mo se faʻataʻitaʻiga, fatuina se tagata faʻaoga, faʻaopoopo se avatar ia te ia ma, i le talosaga lava e tasi, faʻasoa o ia i nisi o autu. E na o le tasi le talosaga, ma le tele o aogā!

Ioe, afai e na'o le tasi lau node pito i tua, e foliga mai e sili atu le vave i se talosaga fa'aputu. Aua e tolu talosaga REST o le a manaʻomia faʻatolu taimi sili atu punaoa mai le tasi node e faʻavae ai fesoʻotaʻiga.

JSON-RPC? Fa'amalo malolo

Manatua o le talosaga muamua i le tulaga o le REST e tatau ona toe faʻafoʻi le ID faʻaoga ina ia mafai ai ona faia talosaga mulimuli ane. Lea foi e afaina ai le taunuuga atoa.

Ae o ia mea tetele e mafai ona maua i totonu o fale fofo ma Enterprise. I le avea ai o se mea mulimuli, i galuega laiti WEB. Ae o fofo WEB atoatoa, ma e oʻo lava ia i latou e taʻua o HighLoad, e le aoga le fausiaina. O latou atina'e e tatau ona ausia tulaga o le maualuga o avanoa ma uta. Ma ua suia le ata.

JSON-RPC? Fa'amalo malolo

O ala tetele o galuega i lalo o le ata lava e tasi e makaina i le lanu meamata. Matauina le amio a le RPC i le taimi nei. O le talosaga e fa'aoga ai atina'e i luga o le tasi vae mai le paleni i le pito i tua. A'o leiloa pea le REST i le talosaga muamua, e fa'amalieina ai le taimi leiloa e fa'aaoga uma ai atina'e.

Ua lava le ulufale i totonu o le tusitusiga e le o ni talosaga se lua mo le faatamaoaigaina, ae, fai mai, lima pe sefulu ... ma le tali i le fesili "o ai e manumalo nei?" ua le manino.

Ou te fautua atu e fai se vaaiga lautele i le faafitauli. O le ata o loʻo faʻaalia ai le faʻaogaina o auala tetele, ae o atinaʻe e le gata i auala. O se vaega taua o se atina'e e maualuga le uta o le caches. Se'i o tatou maua nei se ituaiga mea fa'aoga. Fa'afia. Se'i fa'a 32 taimi.

JSON-RPC? Fa'amalo malolo

Va'ai pe fa'afefea ona fa'aleleia atili atina'e RPC e fa'afetaui ai mana'oga o uta maualuga. O le mea e faʻaaogaina e le REST le malosi atoatoa o le HTTP protocol, e le pei o le RPC. I le ata o loʻo i luga, o lenei mana e faʻaalia e ala i le auala talosaga - GET.

Metotia HTTP, faʻatasi ai ma isi mea, o loʻo i ai taʻiala taʻavale. E mafai ona e mauaina i latou i faʻamaumauga i HTTP. Mo le RPC, o loʻo faʻaaogaina talosaga POST, e le o manatu e le mafai, o lona uiga, o le toe faia soo o talosaga lava e tasi a le POST e mafai ona toe faʻafoʻi mai iʻuga eseese (mo se faʻataʻitaʻiga, pe a uma ona tuʻuina atu faʻamatalaga taʻitasi, o le a aliali mai se isi kopi o lenei faʻamatalaga) (punavai).

O le mea la lea, ua le mafai e le RPC ona fa'aoga lelei le fa'aogaina o mea fa'aoga. O lenei mea e taʻitaʻia ai le manaʻoga e "faʻaulufale mai" masini komepiuta. O le ata o loʻo faʻaalia ai Redis i lenei matafaioi. O le cache software, i le isi itu, e manaʻomia e le tagata atiaʻe le faʻaopoopoina o se faʻaopoopoga o faʻailoga ma suiga iloga i le fausaga.

Se'i o tatou faitau nei pe fia ni talosaga a le REST ma le RPC na “fanau mai” i totonu o atina'e o lo'o iloiloina?

Talosaga
inbox
e tua i tua
i le DBMS
i le cache malu (Redis)
TOTAL

mapu
1/32 *
1
1
0
3 / 35

RPC
32
32
1
31
96

[*] i le tulaga sili ona lelei (pe a faʻaaogaina le faʻaoga i le lotoifale) 1 talosaga (tasi!), I le tulaga sili ona leaga 32 talosaga ulufale mai.

Pe a faatusatusa i le polokalame muamua, e mataʻina le eseesega. O lea ua manino le manuia o le REST. Ae ou te fautua atu e aua le tu ai iina. O atina'e atina'e e aofia ai le CDN. E masani ona foia ai le mataupu o le tetee atu i osofaiga a DDoS ma DoS. Matou te maua:

JSON-RPC? Fa'amalo malolo

O le mea lea e matua leaga ai mea mo le RPC. E le mafai e le RPC ona tuʻuina atu le mamafa o galuega i se CDN. E mafai ona tatou faalagolago i faiga e tetee atu ai osofaiga.

E mafai ona muta iinei? Ma le isi, leai. O auala HTTP, e pei ona taʻua i luga, ei ai a latou lava "togafiti". Ma e leai se mafuaʻaga o le GET auala e faʻaaogaina lautele i luga ole Initaneti. Manatua o lenei metotia e mafai ona maua se vaega o anotusi, e mafai ona seti tulaga e mafai ona faʻamatalaina e elemene atinaʻe aʻo leʻi tuʻuina atu le pule i lau code, ma isi. O nei mea uma e mafai ai e oe ona faia ni fa'aoga fetu'una'i, fa'atonutonuina e mafai ona fa'atautaia le tele o fa'asologa o talosaga. Ae i le RPC o lenei metotia ... e le amanaiaina.

O le a la le mea e fai ai le tala fa'asolopito e fa'apea o talosaga fa'ato'a (RPC) e vave tele? I le tagata lava ia, e foliga mai ia te aʻu o le tele o poloketi e le oʻo i se tulaga o le atinaʻe lea e mafai ai e le REST ona faʻaalia lona malosi. E le gata i lea, i galuega laiti, e sili atu lona naunau e faʻaalia ona vaivaiga.

O le filifiliga o le REST po'o le RPC e le o se filifiliga fa'apitoa a se tagata i se poloketi. O lenei filifiliga e tatau ona fetaui ma manaoga o le poloketi. Afai e mafai e se poloketi ona oomi mea uma na te mafaia mai le REST, ma e manaʻomia moni lava, ona avea lea o le REST ma filifiliga sili.

Ae afai, ina ia maua uma faʻamanuiaga o le REST, e te manaʻomia le faʻafaigaluegaina o tagata tomai faapitoa mo le poloketi e faʻavavevave le faʻaogaina o atinaʻe, pule e pulea le atinaʻe, se tusiata e mamanuina vaega uma o le WEB service ... ma le poloketi. , i le taimi lava e tasi, faʻatau atu ni pusa margarine se tolu i le aso ... Ou te tumau i le RPC, aua ... o lenei protocol e sili atu ona aoga. O le a le manaʻomia se malamalama loloto i le faʻaogaina o faʻaoga ma atinaʻe, ae o le a taulaʻi le tagata faʻapitoa i telefoni faigofie ma malamalama i taualumaga na te manaʻomia. O le a fiafia pisinisi.

O talosaga a le RPC e sili atu ona faʻatuatuaina aua e mafai ona latou faʻataunuʻuina talosaga i totonu o se fefaʻatauaiga e tasi

O lenei meatotino a le RPC o se faʻamanuiaga mautinoa, aua E faigofie ona fa'amautu fa'amaumauga. Ae o le REST ua atili ai ona faigata. Talosaga e ono taunuu le fetaui i nodes pito i tua eseese.

O lenei "le lelei" o le REST o le pito i tua o lona tulaga lelei o loʻo faʻamatalaina i luga - o le mafai ona faʻaoga lelei uma punaoa tetele. Afai e le lelei le faʻatulagaina o atinaʻe, ma e sili atu pe a fai o le fausaga o le poloketi ma le faʻamaumauga faʻapitoa e le lelei le fuafuaina, o lona uiga o se tiga tele lea.

Ae pe fa'atuatuaina talosaga fa'aputu e pei ona foliga mai ai? Sei o tatou vaʻavaʻai i se mataupu: matou te fatuina se tagata faʻaoga, faʻatamaoaigaina lona talaaga i se faʻamatalaga ma auina atu ia te ia se SMS ma se mealilo e faʻamaeʻa ai le resitalaina. O na. tolu vala'au ile tasi vaega ole talosaga.

JSON-RPC? Fa'amalo malolo

Sei o tatou vaavaai i le ata. O lo'o tu'uina mai ai se atina'e fa'atasi ai ma elemene maualuga avanoa. E lua auala fa'afeso'ota'i tuto'atasi ma faitoto'a SMS. Ae... o le a le mea tatou te vaʻaia? A lafoina se SMS, e tupu se mea sese 503 - o le auaunaga e le avanoa mo sina taimi. Aua O le auina atu o SMS o loʻo faʻapipiʻiina i se talosaga faʻapipiʻi, ona tatau lea ona toe faʻafoʻi le talosaga atoa. Ua faaleaogaina gaioiga i le DBMS. Ua maua e le kalani se mea sese.

O le isi taumafaiga o le se‘i. A le o le talosaga o le a toe taia le node lava e tasi ma toe faafoi mai se mea sese, pe o le ae laki ma o le a faia. Ae o le mea autu o le a le itiiti ifo i le taimi ua uma ona galue a tatou atinaʻe fua. Sa i ai se uta, ae leai se tupe mama.

Lelei, se'i o tatou manatu ua tatou fa'atigaina i tatou lava (!) ma mafaufau i le filifiliga pe a mafai ona fa'amae'aina lelei le talosaga. Ma o le a matou taumafai e toe faʻamaeʻa le vaega o totoe pe a maeʻa sina taimi (O le fea? E filifili le pito i luma?). Ae sa tumau pea le se‘i. O le talosaga e lafo SMS e 50/50 le avanoa e toe toilalo ai.

Ioe, mai le itu a le kalani, e foliga mai e le fa'atuatuaina le tautua e pei ona tatou mana'o ai... fa'afefea le REST?

JSON-RPC? Fa'amalo malolo

E toe faʻaaogaina e le REST le togafiti faʻataulāitu a HTTP, ae o lea ua iai faʻailoga tali. A tupu se mea sese 503 i luga o le faitotoa SMS, o le pito i tua e faʻasalalau lenei mea sese i le paleni. E maua e le paleni lenei mea sese ma e aunoa ma le motusia o le fesoʻotaʻiga ma le kalani, tuʻuina atu le talosaga i se isi node, lea e faʻagasolo lelei ai le talosaga. O na. e maua e le tagata o tausia le fa'ai'uga fa'amoemoeina, ma fa'amaonia e le atina'e lona fa'ailoga maualuga o le "maua'i avanoa". E fiafia le tagata fa'aoga.

Ma le isi e le na o le pau lena. O le paleni e le na o le mauaina o se tali tali 503. Pe a tali atu, e tusa ai ma le tulaga masani, e fautuaina le tuʻuina atu o lenei code ma le ulutala "Toe-After". O le ulutala e faʻamalamalama manino i le paleni e le aoga le faʻalavelaveina o lenei node i luga o lenei auala mo se taimi faʻapitoa. Ma o isi talosaga e lafo SMS o le a lafo saʻo i se node e leai ni faʻafitauli i le SMS gateway.

E pei ona mafai ona tatou vaʻaia, o le faʻamaoni o le JSON-RPC ua faʻateleina. O le mea moni, e sili atu ona faigofie le faʻatulagaina o le tutusa i totonu o faʻamaumauga. Ae o le taulaga, i lenei tulaga, o le a avea ma faʻatuatuaina o le faiga atoa.

O le faaiuga e tele lava e tutusa ma le mea muamua. A faigofie le atinaʻe, o le manino o le JSON-RPC e mautinoa lava o se faʻaopoopoga. Afai o le poloketi e aofia ai le avanoa maualuga ma se uta maualuga, o le REST e foliga mai o se fofo sili atu, e ui ina sili atu ona faigata.

E maualalo le tapulaa ulufale ile REST

Ou te manatu o le auʻiliʻiliga o loʻo i luga, o le faʻamaoniaina o faʻamatalaga faʻavae e uiga i le RPC, na faʻaalia manino ai o le faʻailoga mo le ulufale atu i le REST e mautinoa lava e maualuga atu nai lo le RPC. E mafua lenei mea ona o le manaʻomia o se malamalama loloto i le auala e galue ai HTTP, faʻapea foʻi ma le manaʻoga ia lava le malamalama e uiga i elemene o loʻo i ai nei e mafai ma e tatau ona faʻaaogaina i poloketi WEB.

Aisea la e manatu ai le to'atele o le a faigofie atu le REST? O loʻu manatu patino o lenei faigofie faigofie e sau mai le REST faʻaalia i latou lava. O na. REST e le o se faʻasalalauga ae o se manatu ... REST e leai se faʻataʻitaʻiga, o loʻo i ai nisi taʻiala ... REST e le sili atu le lavelave nai lo HTTP. O le sa'olotoga manino ma le vevesi e tosina mai ai "tagata tusiata saoloto".

Ioe, REST e le sili atu ona faigata nai lo HTTP. Ae o le HTTP lava ia o se faʻataʻitaʻiga lelei ua faʻamaonia lona aoga i le tele o tausaga. Afai e leai se malamalama loloto o HTTP lava ia, ona le mafai lea ona faʻamasinoina le REST.

Ae e uiga i le RPC - e te mafaia. Ua lava e ave lona faʻamatalaga. E te manaʻomia foʻi valea JSON-RPC? Pe o lo'o fa'a'ole'ole lava le MALOTO? E te filifili.

Ou te matua faamoemoe ou te lei faamaimauina lou taimi.

puna: www.habr.com

Faaopoopo i ai se faamatalaga