JSON-RPC? Kia mau ki te WHAKATANGA uaua

JSON-RPC? Kia mau ki te WHAKATANGA uaua

E tino mohio ana ahau na te upoko i puta he tauhohenga hauora - "e pai ana, kua timata ano ..." Engari me hopu e au to aro mo te 5-10 meneti, a ka ngana ahau kia kaua e whakapouri i o tumanako.

Ko te hanganga o te tuhinga ka penei: ka tangohia he korero ahua ka kitea te "ahua" o te putanga o tenei ahua. Te ti'aturi nei au ma tenei ka taea e koe te titiro ki te whiriwhiringa o te tauira whakawhiti raraunga i roto i o kaupapa mai i te koki hou.

Kia marama ai he aha te RPC, ka whakaarohia e au te paerewa JSON-RPC 2.0. Ki te REST karekau he marama. A e kore e tika. Ko nga mea katoa e hiahia ana koe ki te mohio mo REST - kaore e taea te rereke mai HTTP.

Ko nga tono RPC he tere ake, he pai ake na te mea ka taea e koe te tuku tono puranga.

Ko te tohu kei roto i te RPC ka taea e koe te karanga i nga tikanga maha i te wa kotahi i te tono kotahi. Hei tauira, hanga he kaiwhakamahi, taapirihia he avatar ki a ia, a, i roto i te tono kotahi, haina ki etahi kaupapa. Kotahi noa te tono, me te nui o te painga!

Inaa, mena he kotahi noa to node o muri, ka tere ake te ahua me te tono puranga. Na te mea e toru nga tono REST e toru nga wa e nui ake ai nga rauemi mai i tetahi pona hei whakatu hononga.

JSON-RPC? Kia mau ki te WHAKATANGA uaua

Kia mahara ko te tono tuatahi mo te REST me whakahoki te ID kaiwhakamahi kia taea ai nga tono a muri ake nei. Ka pa kino hoki te hua katoa.

Engari ko enei hanganga ka kitea anake i roto i nga otinga o roto me te hinonga. Hei waahi whakamutunga, i roto i nga kaupapa WEB iti. Engari ko nga otinga WEB katoa, me era e kiia nei ko HighLoad, kaore e pai ki te hanga. Ko o raatau hanganga me tutuki nga paearu o te waatea me te utaina. Na kei te huri te pikitia.

JSON-RPC? Kia mau ki te WHAKATANGA uaua

Ko nga hongere ngohe hangahanga i raro i taua ahuatanga ka tohua ki te kaariki. Tirohia te ahuatanga o te RPC inaianei. Ka whakamahia e te tono nga hanganga i runga i te waewae kotahi mai i te taurite ki te tuara. Ahakoa kei te ngaro tonu a REST i te tono tuatahi, ka pau te wa ngaro ma te whakamahi i nga hanganga katoa.

He nui ki te whakauru ki roto i te tuhinga kaore e rua nga tono mo te whakarangatira, engari, me kii, e rima, tekau ranei ... me te whakautu ki te patai "ko wai te wikitoria inaianei?" ka marama.

Ka whakaaro ahau ki te titiro whanui atu ki te raruraru. E whakaatu ana te hoahoa me pehea te whakamahi i nga hongere hangahanga, engari kaore i te whakawhäitihia ki nga hongere. Ko tetahi waahanga nui o te hanganga kawenga nui ko nga keteroki. Kia tikina inaianei etahi momo hangahanga a te kaiwhakamahi. Tonu. Kia 32 nga wa.

JSON-RPC? Kia mau ki te WHAKATANGA uaua

Tirohia te pai ake o te hanganga RPC ki te whakatutuki i nga hiahia o te kawenga nui. Ko te mea ko te REST e whakamahi ana i te mana katoa o te kawa HTTP, kaore i rite ki te RPC. I te hoahoa i runga ake nei, ka kitea tenei mana ma te tikanga tono - GET.

Ko nga tikanga HTTP, me era atu mea, he rautaki keteroki. Ka kitea e koe i roto i nga tuhinga i HTTP. Mo te RPC, ka whakamahia nga tono POST, kaore e kiia he idempotent, ara, ko nga tukuruatanga o nga tono POST kotahi ka hoki mai nga hua rereke (hei tauira, ka tukuna ia korero, ka puta ano he kape o tenei korero) (puna).

No reira, kaore e taea e RPC te whakamahi tika i nga keteroki hanganga. Ka arahina tenei ki te hiahia ki te "kawemai" nga keteroki rorohiko. E whakaatu ana te hoahoa i a Redis i tenei mahi. Ko te keteroki rorohiko, ka hiahia te kaiwhakawhanake ki te taapiri i tetahi paparanga o te waehere me nga huringa ka kitea i roto i te hoahoanga.

Me tatau inaianei e hia nga tono a REST me RPC i "whanau" i roto i nga hanganga e whakaarohia ana?

Nga tono
pouakaroto
ki te tuara
ki te DBMS
ki te keteroki ngohengohe (Redis)
TOTAL

te okiokinga
1 / 32 *
1
1
0
3 / 35

Kotahi
32
32
1
31
96

[*] i roto i te take pai (mehemea kei te whakamahia te keteroki rohe) 1 tono (kotahi!), i te kino rawa atu 32 tono mai.

Ka whakatauritea ki te kaupapa tuatahi, he mea whakamiharo te rereketanga. Inaianei kua marama te painga o REST. Engari ko taku whakaaro kia kaua e mutu. Kei roto i nga hanganga kua whakawhanakehia he CDN. I te nuinga o nga wa ka whakatauhia e ia te take o te whakaeke i nga whakaeke DDoS me DoS. Ka whiwhi tatou:

JSON-RPC? Kia mau ki te WHAKATANGA uaua

Koinei te waahi ka tino kino nga mea mo te RPC. Kaore e taea e RPC te tuku i nga mahi ki te CDN. Ka taea noa e tatou te whakawhirinaki ki nga punaha ki te aukati i nga whakaeke.

Ka taea te mutu ki konei? Na ano, kahore. Ko nga tikanga HTTP, pera me te korero i runga ake nei, kei a raatau ake "makutu". A ehara i te mea ko te tikanga GET e whakamahia whanuitia ana i runga i te Ipurangi. Kia mahara ka taea e tenei tikanga te uru ki tetahi waahanga ihirangi, ka taea te whakarite tikanga ka taea e nga huānga hanganga te whakamaori i mua i te whakawhiti mana ki to waehere, me etahi atu. Ko enei mea katoa ka taea e koe te hanga i nga hanganga ngawari, ka taea te whakahaere i nga rerenga tono nui. Engari i roto i te RPC tenei tikanga ... ka warewarehia.

Na te aha i mau tonu ai te pakiwaitara he tere ake te tono puranga (RPC)? Ko ahau ake, ki taku whakaaro ko te nuinga o nga kaupapa kaore e eke ki te taumata o te whakawhanaketanga ka taea e REST te whakaatu i tona kaha. I tua atu, i roto i nga kaupapa iti, ka kaha ake ia ki te whakaatu i ona ngoikoretanga.

Ko te kowhiringa o REST, RPC ranei ehara i te kowhiringa ma te tangata takitahi i roto i tetahi kaupapa. Me tutuki tenei whiringa ki nga whakaritenga o te kaupapa. Mena ka taea e tetahi kaupapa te kohi i nga mea katoa ka taea e ia mai i te REST, me te tino hiahia, katahi ka tino pai a REST.

Engari ki te whiwhi koe i nga painga katoa o te REST, me utu koe i nga tohungatanga devops mo te kaupapa kia tere tere nga hanganga, nga kaiwhakahaere ki te whakahaere i nga hanganga, he kaihoahoa ki te hoahoa i nga paparanga katoa o te ratonga WEB ... me te kaupapa. , i te wa ano, ka hokona e toru nga kete margarine ia ra... Ka piri ahau ki te RPC, na te mea... he pai ake tenei kawa. Kaore e hiahiatia he matauranga hohonu mo te mahi o nga keteroki me nga hanganga, engari ka arotahi te kaiwhakawhanake ki nga waea ngawari me te maarama ki nga tikanga e hiahiatia ana e ia. Ka harikoa te pakihi.

He pono ake nga tono a RPC na te mea ka taea e raatau te whakahaere i nga tono puranga i roto i te tauwhitinga kotahi

Ko tenei taonga o te RPC he tino painga, na te mea He mea ngawari ki te pupuri i te paataka raraunga. Engari ma te REST ka nui ake te uaua. Ka tae mai pea nga tono ki nga momo kopuku o muri.

Ko tenei "raruraru" o te REST ko te taha hurihanga o tona painga i whakaahuatia i runga ake nei - ko te kaha ki te whakamahi tika i nga rawa hanganga katoa. Mena he kino te hanganga o te hanganga, me te mea he pai te hoahoanga o te kaupapa me te paataka korero, he tino mamae tenei.

Engari he rite tonu te pono o nga tono puranga? Me titiro ki tetahi keehi: ka hangaia e matou he kaiwhakamahi, ka whakarangatira i tana korero me etahi whakaahuatanga ka tukuna he SMS ki a ia me te mea ngaro hei whakaoti i te rehitatanga. Ko era. e toru nga waea i roto i te tono puranga kotahi.

JSON-RPC? Kia mau ki te WHAKATANGA uaua

Kia titiro tatou ki te hoahoa. Ka whakaatuhia he hanganga me nga huānga e waatea ana. E rua nga hongere whakawhitiwhiti korero motuhake me nga kuaha SMS. Engari... he aha ta tatou e kite ana? I te wa e tukuna ana he SMS, ka puta he hapa 503 - kaore i te waatea te ratonga mo te wa poto. No te mea Ko te tuku SMS ka takai i roto i te tono puranga, katahi ka hoki te tono katoa. Kua whakakorehia nga mahi i roto i te DBMS. Ka whiwhi hapa te kiritaki.

Ko te piro e whai ake nei ko te rota. Ka pa atu ano te tono ki taua node ka whakahoki ano i tetahi hapa, ka waimarie koe ka mahia. Engari ko te mea nui ko te iti rawa i te wa kua mahi noa a maatau hanganga. He kawenga, engari kaore he hua.

Kaati, me whakaaro kua whakapau kaha tatou (!) me te whakaaro ki te whiringa ka taea te whakaoti i tetahi waahanga o te tono. A ka ngana ki te whakaoti ano i te toenga i muri i etahi wa (Ko tehea? Ma te mua e whakatau?). Engari i mau tonu te rota. Ko te tono ki te tuku SMS he 50/50 te tupono ka kore ano.

Whakaae, mai i te taha o te kiritaki, kaore i te pono te ratonga penei i ta matou e hiahia ana... pehea te REST?

JSON-RPC? Kia mau ki te WHAKATANGA uaua

Ka whakamahia ano e REST te makutu o HTTP, engari inaianei me nga waehere whakautu. Ka puta he hapa 503 i runga i te kuaha SMS, ka tukuna e te tuara tenei hapa ki te taurite. Ka whiwhi te kaitaurite i tenei hapa me te kore e pakaru i te hononga ki te kiritaki, ka tukuna te tono ki tetahi atu node, e whakahaere pai ana i te tono. Ko era. ka whiwhi te kiritaki i te hua e tumanakohia ana, a ka whakapumautia e te hanganga tona taitara teitei o "tino uru". Kei te koa te kaiwhakamahi.

A ano ehara ko tera anake. Kaore i riro noa i te kaiwawao he waehere whakautu o 503. I te whakautu, i runga i te paerewa, he mea tika kia whakaratohia tenei waehere me te pane "Whakahou-A muri". Ko te pane e whakamarama ana ki te kaitaurite kaore e pai ki te whakararuraru i tenei node i runga i tenei huarahi mo te wa kua tohua. A ko nga tono e whai ake nei ki te tuku SMS ka tukuna tika atu ki tetahi node karekau he raruraru ki te kuaha SMS.

Ka taea e tatou te kite, ko te pono o te JSON-RPC ka nui ake te whakanui. Ae, he ngawari ake te whakarite i te riterite i roto i te paataka raraunga. Engari ko te patunga tapu, i tenei keehi, ko te pono o te punaha katoa.

He rite tonu te whakatau ki tera o mua. Mena he maamaa te hanganga, ko te maaramatanga o JSON-RPC he tino taapiri. Mena kei te whai waahi nui te kaupapa me te nui o te kawenga, ko te ahua o te REST he otinga tika ake, ahakoa he uaua ake.

He iti ake te paepae urunga ki REST

Я думаю, что выше проведенный анализ, развенчивающий устоявшиеся стереотипы о RPC наглядно показал, что порог входа в REST несомненно выше, чем в RPC. Связанно это с необходимостью глубокого понимания работы HTTP, а также, с необходимостью обладать достаточными знаниями о существующих инфраструктурных элементах, которые можно и нужно применять в WEB проектах.

Na he aha te tini o nga tangata e whakaaro ana ka ngawari ake te REST? Ko taku ake whakaaro ko tenei ahua ngawari ka puta mai i te REST e whakaatu ana. Ko era. Ko te REST ehara i te kawa engari he ariā... karekau he paerewa a REST, kei reira etahi aratohu... Ko te REST kaore he uaua ake i te HTTP. Ko te ahua o te herekore me te nanakia e kukume ana i nga "toi kore utu".

Ko te tikanga, ko te REST ehara i te mea uaua ake i te HTTP. Engari ko te HTTP ake he kawa i hangaia pai kua whakamatauhia tona utu i roto i nga tau tekau. Mena karekau he mohiotanga hohonu mo te HTTP ake, kare e taea te whakatau i te REST.

Engari mo te RPC - ka taea e koe. He nui ki te tango i tana whakaritenga. Na me hiahia koe JSON-RPC poauau? He uaua tonu ranei te REST? Ka whakatau koe.

E tino tumanako ana ahau kaore au i moumou i to taima.

Source: will.com

Tāpiri i te kōrero