Bloic thógála na n-iarratas dáilte. Comhfhogasú nialasach

Bloic thógála na n-iarratas dáilte. Comhfhogasú nialasach

Ní sheasann an domhan fós. Cruthaíonn an dul chun cinn dúshláin teicneolaíochta nua. De réir riachtanais athraitheacha, ní mór ailtireacht na gcóras faisnéise a fhorbairt. Sa lá atá inniu beimid ag caint faoi ailtireacht imeachtaí-tiomáinte, concurrency, concurrency, asynchrony, agus conas is féidir leat maireachtáil go síochánta leis seo go léir in Erlang.

Réamhrá

Ag brath ar mhéid an chórais deartha agus na ceanglais maidir leis, roghnaíonn muidne, na forbróirí, an modh chun faisnéis a mhalartú sa chóras. I bhformhór na gcásanna, chun idirghníomhú seirbhísí a eagrú, d’fhéadfadh go mbeadh rogha oibre ina scéim le bróicéir, mar shampla, bunaithe ar RabbitMQ nó kafka. Ach uaireanta bíonn sreabhadh na n-imeachtaí, an CLS agus an leibhéal rialaithe ar an gcóras den sórt sin nach bhfuil teachtaireachtaí réidh oiriúnach dúinn. Ar ndóigh, is féidir leat an córas a chasta beagán trí fhreagracht a ghlacadh as an gciseal iompair agus foirmiú braisle, mar shampla ag baint úsáide as ZeroMQ nó nanomsg. Ach má tá go leor tréchur agus cumais ag an gcóras de bhraisle chaighdeánach Erlang, tá gá le mionstaidéar agus fírinniú eacnamaíoch chun aonán breise a thabhairt isteach.

Tá ábhar na bhfeidhmchlár imoibríoch dáilte sách leathan. Chun a choinneáil laistigh d’fhormáid an ailt, ní bheidh ina ábhar do phlé an lae inniu ach timpeallachtaí aonchineálacha bunaithe ar Erlang/Elixir. Ligeann éiceachóras Erlang/OTP duit ailtireacht imoibríoch a chur i bhfeidhm leis an méid is lú iarrachta. Ach in aon chás, beidh ciseal teachtaireachtaí de dhíth orainn.

Bunús teoiriciúil

Tosaíonn dearadh le spriocanna agus srianta a shainiú. Níl an príomh-sprioc sa réimse forbartha ar mhaithe le forbairt. Ní mór dúinn uirlis shlán agus inscálaithe a fháil ar a mbonn ar féidir linn feidhmchláir nua-aimseartha ar leibhéil éagsúla a chruthú agus, níos tábhachtaí fós, a fhorbairt: ag tosú ó fheidhmchláir aonfhreastalaí a fhreastalaíonn ar lucht éisteachta beag, ar féidir leo forbairt níos déanaí ina gcnuasaigh de suas le 50. -60 nóid, ag críochnú le cónaidhmeanna braisle. Mar sin, is é an príomhsprioc ná brabúis a uasmhéadú trí chostas forbartha agus úinéireacht an chórais deiridh a laghdú.

Lig dúinn aird a tharraingt ar 4 phríomhriachtanas don chóras deiridh:

  • Сdírithe ar imeachtaí.
    Tá an córas réidh i gcónaí chun pas a fháil trí shreabhadh na n-imeachtaí agus na gníomhartha is gá a dhéanamh;
  • Мscalability.
    Is féidir bloic aonair a scála go hingearach agus go cothrománach. Caithfidh an córas iomlán a bheith in ann fás cothrománach gan teorainn;
  • Оlamháltas locht.
    Ba cheart go mbeadh gach leibhéal agus gach seirbhís in ann teacht chucu féin go huathoibríoch ó theipeanna;
  • Гam freagartha ráthaithe.
    Tá am luachmhar agus níor cheart d'úsáideoirí fanacht ró-fhada.

An cuimhin leat an seanscéal faoi “An t-inneall beag a d’fhéadfadh”? Chun go n-éireoidh leis an gcóras deartha céim an fhréamhshamhail a fhágáil agus a bheith forásach, ní mór don bhunús na híosriachtanais a chomhlíonadh SMOG.

Cuirtear pointe amháin eile le teachtaireachtaí mar uirlis bhonneagair agus mar bhunús do gach seirbhís: éascaíocht úsáide do ríomhchláraitheoirí.

Dírithe ar imeachtaí

Chun feidhmchlár a fhás ó fhreastalaí amháin go braisle, caithfidh a ailtireacht tacú le cúpláil scaoilte. Comhlíonann an tsamhail asincrónach an riachtanas seo. Inti, bíonn cúram ar an seoltóir agus ar an bhfaighteoir faoi ualach faisnéise na teachtaireachta agus ní bhíonn imní orthu faoi tharchur agus ródú laistigh den chóras.

Scalability

Tá scalability agus éifeachtacht an chórais in aice lena chéile. Caithfidh comhpháirteanna feidhmchláir a bheith in ann úsáid a bhaint as na hacmhainní go léir atá ar fáil. Dá éifeachtúla is féidir linn acmhainn a úsáid agus dá optamach ár modhanna próiseála, is ea is lú airgid a chaithfimid ar threalamh.

Laistigh de mheaisín amháin, cruthaíonn Erlang timpeallacht an-iomaíoch. Is féidir an t-iarmhéid idir comhairgeadra agus comhthreomhaireacht a shocrú trí líon na snáitheanna córas oibriúcháin atá ar fáil don Erlang VM agus líon na sceidealóirí a úsáideann na snáitheanna seo a roghnú.
Ní roinneann próisis Erlang an stát agus oibríonn siad i mód neamh-bhloic. Soláthraíonn sé seo latency réasúnta íseal agus tréchur níos airde ná feidhmchláir traidisiúnta bunaithe ar bhlocáil. Cinntíonn sceidealóir Erlang leithdháileadh cothrom ar LAP agus IO, agus ceadaíonn an easpa blocála don iarratas freagairt fiú le linn buaicualaí nó teipeanna.

Ag leibhéal an bhraisle, tá fadhb ann maidir le diúscairt freisin. Tá sé tábhachtach go bhfuil gach meaisín sa bhraisle luchtaithe go cothrom agus nach bhfuil an líonra ró-ualach. Déanaimis cás a shamhlú: tailte tráchta úsáideoirí ar chothromóirí ag teacht isteach (haproxy, nginx, srl), dáileann siad iarratais próiseála chomh cothrom agus is féidir idir an tacar na n-ais atá ar fáil. Laistigh den bhonneagar feidhmchláir, níl sa tseirbhís a chuireann an comhéadan riachtanach chun feidhme ach an míle deireanach agus beidh uirthi roinnt seirbhísí eile a iarraidh chun freagra a thabhairt ar an iarratas tosaigh. Teastaíonn ródú agus cothromaíocht ó iarratais inmheánacha freisin.
Chun sreabhadh sonraí a bhainistiú go héifeachtach, ní mór do theachtaireachtaí comhéadan a sholáthar d'fhorbróirí chun ródú agus cothromaíocht ualaigh a bhainistiú. Buíochas leis seo, beidh forbróirí in ann, ag baint úsáide as patrúin microservice (comhbhailitheoir, seachfhreastalaí, slabhra, brainse, srl), chun fadhbanna caighdeánacha agus iad siúd a thagann chun cinn go hannamh a réiteach.

Ó thaobh gnó de, tá scalability ar cheann de na huirlisí bainistíochta riosca. Is é an rud is mó ná iarratais na gcustaiméirí a shásamh tríd an trealamh a úsáid go barrmhaith:

  • Nuair a mhéadaíonn cumhacht trealaimh mar thoradh ar dhul chun cinn. Ní bheidh sé díomhaoin mar gheall ar bhogearraí neamhfhoirfe. Scálaí Erlang go ceartingearach agus beidh sé in ann i gcónaí úsáid a bhaint as gach croíleacan LAP agus cuimhne atá ar fáil;
  • I dtimpeallachtaí scamall, is féidir linn an méid trealaimh a bhainistiú ag brath ar an ualach atá ann faoi láthair nó a thuar agus SLA a ráthú.

lamháltas locht

Déanaimis machnamh ar dhá aicsiom: “Tá teipeanna do-ghlactha” agus “Beidh teipeanna i gcónaí.” I gcás gnóthas, ciallaíonn teip bogearraí go gcailltear airgead, agus an rud is measa, cailleadh clú. Is minic gur féidir teacht ar chomhréiteach idir caillteanais fhéideartha agus an costas a bhaineann le bogearraí a fhulaingíonn lochtanna a fhorbairt.

Sa ghearrthéarma, sábhálann ailtireacht a ionchorpraíonn lamháltas lochtanna airgead ar réitigh bhraisle lasmuigh den tseilf a cheannach. Tá siad costasach agus tá fabhtanna acu freisin.
San fhadtéarma, is iomaí uair a íocann ailtireacht locht-fhulangach as féin ag gach céim den fhorbairt.
Ligeann teachtaireachtaí laistigh den bhunchód duit idirghníomhú na gcomhpháirteanna laistigh den chóras a oibriú amach go mion ag an gcéim forbartha. Simplíonn sé seo an tasc chun teipeanna a fhreagairt agus a bhainistiú, ós rud é go láimhseálann na comhpháirteanna ríthábhachtacha go léir teipeanna, agus tá a fhios ag an gcóras mar thoradh air seo conas filleadh ar an ngnáthbhealach go huathoibríoch tar éis teip de réir dearaidh.

Sofhreagracht

Beag beann ar theipeanna, ní mór don iarratas freagra a thabhairt ar iarratais agus an CLS a chomhlíonadh. Is é fírinne an scéil nach bhfuil daoine ag iarraidh fanacht, mar sin ní mór do ghnóthais oiriúnú dá réir. Táthar ag súil go mbeidh níos mó agus níos mó feidhmchlár an-sofhreagrach.
Feidhmíonn iarratais fhreagracha i mbeagnach fíor-ama. Feidhmíonn Erlang VM i mód bog fíor-ama. I gcás roinnt réimsí, cosúil le trádáil stoc, leigheas, agus rialú trealaimh thionsclaíoch, tá modh crua fíor-ama tábhachtach.
Feabhsaíonn córais sofhreagracha UX agus téann siad chun sochair an ghnó.

Réamhthoradh

Agus an t-alt seo á phleanáil, bhí mé ag iarraidh mo thaithí a roinnt maidir le bróicéir teachtaireachtaí a chruthú agus córais chasta a thógáil bunaithe air. Ach bhí an chuid teoiriciúil agus spreagthach sách fairsing.
Sa dara cuid den alt, labhróidh mé faoi na nuances a bhaineann le pointí malairte, patrúin teachtaireachtaí agus a gcur i bhfeidhm a chur i bhfeidhm.
Sa tríú cuid breathnóimid ar shaincheisteanna ginearálta a bhaineann le seirbhísí a eagrú, ródú agus cothromú. Labhraímis faoin taobh praiticiúil a bhaineann le hinscálaitheacht agus lamháltas lochtanna na gcóras.

Deireadh an chéad chuid.

grianghraf @lucabravo.

Foinse: will.com

Add a comment