JSON-RPC? Makà FITSAHARANA sarotra

JSON-RPC? Makà FITSAHARANA sarotra

Azoko antoka fa niteraka fanehoan-kevitra ara-pahasalamana ny lohateny - "eny, nanomboka indray izany ..." Fa avelao aho hisarika ny sainao mandritra ny 5-10 minitra, ary hiezaka ny tsy handiso fanantenana anao aho.

Ny firafitry ny lahatsoratra dia ho toy izao manaraka izao: ny fanambarana stereotype dia raisina ary ny "natiora" ny firongatry ny stereotype dia nambara. Manantena aho fa hamela anao hijery ny safidin'ny paradigma fifanakalozana data amin'ny tetikasanao amin'ny lafiny vaovao.

Mba hahafantarana mazava tsara ny atao hoe RPC, dia manoro hevitra ny handinika ny fenitra aho JSON-RPC 2.0. Miaraka amin'ny REST dia tsy misy mazava. Ary tsy tokony ho izany. Ny zavatra rehetra tokony ho fantatrao momba ny REST - tsy azo avahana izy io HTTP.

Ny fangatahana RPC dia haingana sy mahomby kokoa satria mamela anao hanao fangatahana batch.

Ny zava-misy dia ao amin'ny RPC ianao dia afaka miantso dingana maromaro indray mandeha amin'ny fangatahana iray. Ohatra, mamorona mpampiasa iray, ampio avatar ho azy ary, amin'ny fangatahana mitovy, misoratra anarana amin'ny lohahevitra sasany. Fangatahana iray monja, ary inona no tombony!

Eny tokoa, raha manana node backend tokana ianao dia toa haingana kokoa izany miaraka amin'ny fangatahana batch. Satria ny fangatahana REST telo dia mitaky loharano avo telo heny avy amin'ny node iray mba hametrahana fifandraisana.

JSON-RPC? Makà FITSAHARANA sarotra

Mariho fa ny fangatahana voalohany amin'ny tranga REST dia tsy maintsy mamerina ny ID mpampiasa mba hahazoana ny fangatahana manaraka. Izay misy fiantraikany ratsy amin'ny vokatra ankapobeny ihany koa.

Saingy ny fotodrafitrasa toy izany dia tsy hita afa-tsy amin'ny vahaolana an-trano sy Enterprise. Amin'ny fomba farany, amin'ny tetikasa WEB kely. Saingy ny vahaolana WEB feno, ary na dia ireo antsoina hoe HighLoad aza, dia tsy mendrika hamboarina. Ny fotodrafitrasan'izy ireo dia tsy maintsy mahafeno ny fepetra momba ny fisian'ny entana sy ny entana. Ary miova ny sary.

JSON-RPC? Makà FITSAHARANA sarotra

Ny fantsona hetsika fotodrafitrasa amin'ny toe-javatra mitovy amin'izany dia voamarika amin'ny maitso. Mariho ny fihetsiky ny RPC izao. Ny fangatahana dia mampiasa ny fotodrafitrasa amin'ny tongotra iray ihany manomboka amin'ny balancer mankany amin'ny backend. Raha mbola resy ny REST tamin'ny fangatahana voalohany, dia manonitra ny fotoana very amin'ny fampiasana ny fotodrafitrasa manontolo.

Ampy ny miditra ao amin'ny script fa tsy fangatahana fanampin-javatra roa, fa, ohatra, dimy na folo ... ary ny valin'ny fanontaniana hoe "iza no mandresy?" lasa tsy mazava.

Manoro hevitra aho ny hijery bebe kokoa ny olana. Ny kisary dia mampiseho ny fomba ampiasana ny fantsona fotodrafitrasa, fa tsy voafetra amin'ny fantsona ihany ny fotodrafitrasa. Ny singa manan-danja amin'ny fotodrafitrasa be entana dia cache. Andeha isika izao haka karazana artifact mpampiasa. Miverimberina. Andeha atao hoe in-32.

JSON-RPC? Makà FITSAHARANA sarotra

Jereo ny fomba nivoahan'ny fotodrafitrasa RPC mba hanomezana fahafaham-po ny fitakiana entana be. Ny zava-misy dia ny REST dia mampiasa ny hery feno amin'ny protocol HTTP, tsy toy ny RPC. Ao amin'ny kisary etsy ambony, io hery io dia tsapa amin'ny alàlan'ny fomba fangatahana - GET.

Ny fomba HTTP, ankoatry ny zavatra hafa, dia manana paikady caching. Azonao atao ny mahita azy ireo ao amin'ny antontan-taratasy ao amin'ny HTTP. Ho an'ny RPC, ny fangatahana POST dia ampiasaina, izay tsy heverina ho idempotent, izany hoe, ny famerimberenana miverimberina amin'ny fangatahana POST mitovy dia mety hitondra valiny hafa (ohatra, aorian'ny fandefasana ny fanehoan-kevitra tsirairay dia hiseho ny dika mitovy amin'ity fanehoan-kevitra ity) (loharano).

Noho izany, ny RPC dia tsy afaka mampiasa tsara ny fotodrafitrasa cache. Izany dia mitarika amin'ny filàna "manafatra" cache logiciel. Ny kisary dia mampiseho an'i Redis amin'ity andraikitra ity. Ny cache logiciel kosa dia mitaky ny mpamorona mba hampiditra sosona kaody fanampiny sy fiovana hita maso eo amin'ny maritrano.

Andeha hojerentsika hoe firy ny fangatahana REST sy RPC "nateraka" tao amin'ny fotodrafitrasa dinihina?

fangatahana
Inbox
to backend
mankany amin'ny DBMS
mankany amin'ny cache malefaka (Redis)
TOTAL

HAFA
1 / 32 *
1
1
0
3 / 35

ny famelomana
32
32
1
31
96

[*] amin'ny tranga tsara indrindra (raha ampiasaina ny cache eo an-toerana) fangatahana 1 (iray!), amin'ny tranga ratsy indrindra dia 32 fangatahana miditra.

Raha ampitahaina amin'ny drafitra voalohany, dia miavaka ny fahasamihafana. Ankehitriny dia mazava ny tombotsoan'ny REST. Saingy manoro hevitra aho mba tsy hijanona eo. Ny fotodrafitrasa novolavolaina dia ahitana CDN. Matetika izy io koa dia mamaha ny olan'ny fanoherana ny fanafihana DDoS sy DoS. Mahazo izahay:

JSON-RPC? Makà FITSAHARANA sarotra

Eto no tena ratsy ny RPC. RPC dia tsy afaka manolotra ny enta-mavesatra amin'ny CDN. Tsy afaka miantehitra amin'ny rafitra ihany isika mba hanoherana ny fanafihana.

Azo atao ve ny mifarana eto? Ary indray, tsia. Ny fomba HTTP, araka ny voalaza etsy ambony, dia manana ny "majika" azy manokana. Ary tsy misy antony fa ny fomba GET dia ampiasaina betsaka amin'ny Internet. Mariho fa ity fomba ity dia afaka miditra amin'ny votoaty iray, afaka mametraka fepetra ahafahan'ny singa fotodrafitrasa handikana alohan'ny hamindrana ny fanaraha-maso amin'ny code-nao, sy ny sisa. Izany rehetra izany dia ahafahanao mamorona fotodrafitrasa mora fehezina sy azo fehezina izay mahazaka ireo fangatahana be dia be. Saingy ao amin'ny RPC ity fomba ity ... dia tsy raharahaina.

Noho izany, nahoana ny angano hoe ny fangatahana batch (RPC) dia haingana kokoa? Amiko manokana dia toa tsy mahatratra ny haavon'ny fampandrosoana tsotra izao ny ankamaroan'ny tetikasa izay ahafahan'ny REST mampiseho ny tanjany. Ankoatra izany, amin'ny tetikasa madinika dia vonona kokoa ny hampiseho ny fahalemeny izy.

Ny safidy REST na RPC dia tsy safidy an-tsitrapo ataon'ny olona iray amin'ny tetikasa iray. Ity safidy ity dia tsy maintsy mahafeno ny fepetra takian'ny tetikasa. Raha toa ny tetikasa iray dia afaka manindry izay rehetra azony atao amin'ny REST, ary tena mila izany, dia ho safidy tsara ny REST.

Fa raha, mba hahazoana ny tombontsoa rehetra avy amin'ny REST, dia mila manakarama devops manam-pahaizana manokana ho an'ny tetikasa mba hanitatra haingana ny foto-drafitrasa, mpitantana ny fitantanana ny foto-drafitrasa, architects hamolavola ny sosona rehetra ny tolotra WEB ... sy ny tetikasa , sady mivarotra margarine telo fonosana isan'andro... Hifikitra amin'ny RPC aho, satria... ity protocol ity dia utilitarian kokoa. Tsy mitaky fahalalana lalina momba ny fomba fiasan'ny cache sy ny fotodrafitrasa izany, fa hampifantoka ny developer amin'ny antso tsotra sy azo takarina amin'ny fomba ilainy. Ho faly ny orinasa.

Ny fangatahana RPC dia azo ianteherana kokoa satria afaka manatanteraka ny fangatahana batch ao anatin'ny fifampiraharahana tokana

Ity fananan'ny RPC ity dia tombony azo antoka, satria Mora ny mitazona ny angon-drakitra tsy miovaova. Saingy miaraka amin'ny REST dia mihasarotra kokoa. Mety ho tonga tsy mifanaraka amin'ny node backend samihafa ny fangatahana.

Io “fatiantoka” an'ny REST io no lafin'ny tombotsoany voalaza etsy ambony - ny fahaizana mampiasa tsara ny loharanon-drafitra rehetra. Raha toa ka ratsy ny famolavolana ny foto-drafitrasa, ary mainka fa raha ny maritrano ny tetikasa sy ny tahirin-kevitra manokana dia ratsy ny famolavolana, dia tena fanaintainana lehibe izany.

Saingy azo ianteherana araka ny fahitana azy ve ny fangatahana andiany? Andeha hojerentsika ny tranga iray: mamorona mpampiasa isika, manatsara ny mombamomba azy amin'ny famaritana sasany ary mandefa SMS misy tsiambaratelo hamita ny fisoratana anarana. Ireo. antso telo amin'ny fangatahana batch iray.

JSON-RPC? Makà FITSAHARANA sarotra

Andeha hojerentsika ny kisary. Izy io dia manolotra fotodrafitrasa misy singa avo lenta. Misy fantsom-pifandraisana tsy miankina roa misy vavahady SMS. Fa... inona no hitantsika? Rehefa mandefa SMS dia misy hadisoana 503 - tsy misy ny serivisy vonjimaika. SATRIA Ny fandefasana SMS dia fonosina amin'ny fangatahana andiany, dia tsy maintsy averina ny fangatahana manontolo. Foana ny hetsika ao amin'ny DBMS. Mahazo fahadisoana ny mpanjifa.

Ny andrana manaraka dia ny loteria. Na ny fangatahana dia hidona amin'ny node mitovy hatrany ary hamerina fahadisoana, na ho tsara vintana ianao ary hotanterahina. Fa ny tena zava-dehibe dia raha kely indrindra dia efa niasa foana ny fotodrafitrasa eto amintsika. Nisy entana, nefa tsy nisy tombony.

Eny ary, andeha hojerentsika fa nanery tena (!) izahay ary nieritreritra ny safidy rehefa vita soa aman-tsara ny fangatahana. Ary hiezaka ny hamita ny ambiny indray isika aorian'ny elanelam-potoana vitsivitsy (Iza? Ny eo aloha ve no manapa-kevitra?). Saingy ny loteria dia tsy miova. Ny fangatahana handefasana SMS dia manana vintana 50/50 tsy hahomby indray.

Ekeo, avy amin'ny lafiny mpanjifa, ny serivisy dia toa tsy azo ianteherana araka izay irinay ... ahoana ny REST?

JSON-RPC? Makà FITSAHARANA sarotra

Mampiasa ny herin'ny HTTP indray ny REST, saingy miaraka amin'ny kaody valiny. Rehefa misy hadisoana 503 mitranga eo amin'ny vavahadin'ny SMS, ny backend dia mandefa izany fahadisoana izany amin'ny balancer. Ny balancer dia mandray io hadisoana io ary tsy manapaka ny fifandraisana amin'ny mpanjifa, mandefa ny fangatahana amin'ny node hafa, izay mahomby amin'ny fikarakarana ny fangatahana. Ireo. ny mpanjifa dia mahazo ny vokatra andrasana, ary ny fotodrafitrasa dia manamafy ny anaram-boninahitra ambony hoe "tena azo idirana". Faly ny mpampiasa.

Ary mbola tsy izay ihany. Tsy nahazo kaody valiny 503 fotsiny ny balancer. Rehefa mamaly, araka ny fenitra, dia tsara ny manome an'io kaody io miaraka amin'ny lohatenin'ny "Retry-After". Ny lohapejy dia manazava amin'ny mpifandanja fa tsy mendrika ny hanakorontana ity node ity amin'ity lalana ity mandritra ny fotoana voafaritra. Ary ny fangatahana manaraka handefasana SMS dia halefa mivantana any amin'ny node izay tsy misy olana amin'ny vavahadin'ny SMS.

Araka ny hitantsika, ny fahamendrehan'ny JSON-RPC dia be loatra. Eny tokoa, mora kokoa ny mandamina ny tsy fitoviana amin'ny angon-drakitra. Saingy ny fahafoizan-tena, amin'ity tranga ity, dia ny fahamendrehan'ny rafitra manontolo.

Ny fehin-kevitra dia mitovy amin'ny teo aloha. Rehefa tsotra ny fotodrafitrasa dia azo antoka fa tombony ny fahitana ny JSON-RPC. Raha toa ny tetikasa dia misy fahafahana be miaraka amin'ny entana be dia be, ny REST dia toa vahaolana marina kokoa, na dia sarotra kokoa aza.

Ny fetran'ny fidirana amin'ny REST dia ambany kokoa

Heveriko fa ny famakafakana etsy ambony, manafoana ny stereotypes napetraka momba ny RPC, dia nampiseho mazava tsara fa ny tokonam-baravarana fidirana ao amin'ny REST dia tsy isalasalana fa ambony noho ny ao amin'ny RPC. Izany dia noho ny filàna fahatakarana lalina ny fomba fiasan'ny HTTP, ary koa ny filàna fahalalana ampy momba ireo singa fotodrafitrasa misy izay azo ampiasaina sy tokony hampiasaina amin'ny tetikasa WEB.

Nahoana àry no maro no mihevitra fa ho tsotra kokoa ny REST? Ny hevitro manokana dia io fahatsorana hita maso io dia avy amin'ny REST miseho. Ireo. Tsy protocole ny REST fa concept... tsy manana standard ny REST fa misy tondrozotra... Tsy sarotra kokoa noho ny HTTP ny REST. Misarika ny “mpanakanto afaka” ny fahalalahana hita maso sy ny tsy fandriampahalemana.

Mazava ho azy fa tsy sarotra kokoa noho ny HTTP ny REST. Saingy ny HTTP mihitsy dia protocole voarafitra tsara izay nanaporofo ny lanjany nandritra ny am-polony taona maro. Raha tsy misy fahatakarana lalina momba ny HTTP mihitsy, dia tsy azo tsaraina ny REST.

Fa momba ny RPC - azonao atao. Ampy ny maka ny famaritana azy. Ka mila ve ianao adala JSON-RPC? Sa mbola sarotra ny FITSAHARANA? Manapa-kevitra ianao.

Tena manantena aho fa tsy nandany ny fotoananao.

Source: www.habr.com

Add a comment