Blocaichean togail de thagraidhean sgaoilte. Tuairmse neoni

Blocaichean togail de thagraidhean sgaoilte. Tuairmse neoni

Chan eil an saoghal a’ seasamh fhathast. Tha adhartas a’ cruthachadh dhùbhlain teicneòlais ùra. A rèir riatanasan caochlaideach, feumaidh ailtireachd shiostaman fiosrachaidh a thighinn air adhart. An-diugh bruidhnidh sinn mu ailtireachd air a stiùireadh le tachartas, concurrency, concurrency, asynchrony, agus mar as urrainn dhut a bhith beò gu sìtheil le seo uile ann an Erlang.

Ro-ràdh

A rèir meud an t-siostam dealbhaichte agus na riatanasan air a shon, tha sinne, an luchd-leasachaidh, a’ taghadh an dòigh airson fiosrachadh a iomlaid san t-siostam. Anns a 'mhòr-chuid de chùisean, gus eadar-obrachadh sheirbheisean a chuir air dòigh, faodaidh roghainn obrach a bhith na sgeama le broker, mar eisimpleir, stèidhichte air RabbitMQ no kafka. Ach uaireannan tha sruthadh thachartasan, SLA agus ìre smachd air an t-siostam cho mòr is nach eil teachdaireachdan deiseil freagarrach dhuinn. Gu dearbh, faodaidh tu an siostam a dhèanamh nas iom-fhillte le bhith a 'gabhail uallach airson an còmhdach còmhdhail agus cruthachadh chnuasan, mar eisimpleir a' cleachdadh ZeroMQ no nanomsg. Ach ma tha gluasad gu leòr aig an t-siostam agus comasan buidheann àbhaisteach Erlang, tha feum air sgrùdadh mionaideach agus fìreanachadh eaconamach air a’ cheist mu bhith a’ toirt a-steach eintiteas a bharrachd.

Tha cuspair tagraidhean sgaoilte reactive gu math farsaing. Gus cumail taobh a-staigh cruth an artaigil, cha bhi cuspair deasbaid an latha an-diugh ach ann an àrainneachdan aon-ghnèitheach a chaidh a thogail air Erlang/Elixir. Leigidh eag-shiostam Erlang/OTP leat ailtireachd ath-ghnìomhach a chuir an gnìomh leis an oidhirp as lugha. Ach co-dhiù, bidh feum againn air sreath teachdaireachdan.

Bun-stèidh teòiridheach

Bidh dealbhadh a 'tòiseachadh le bhith a' mìneachadh amasan agus cuingeadan. Chan eil am prìomh amas anns an raon leasachaidh airson adhbhar leasachaidh. Feumaidh sinn inneal tèarainte agus so-ruigsinneach fhaighinn air a bheil sinn comasach air tagraidhean ùr-nodha de dhiofar ìrean a chruthachadh agus, nas cudromaiche, a leasachadh: a’ tòiseachadh bho thagraidhean aon-fhrithealaiche a’ frithealadh luchd-èisteachd beag, a dh’ fhaodas a thighinn air adhart gu bhith nan cruinneachaidhean de suas ri 50. -60 nodan, a’ crìochnachadh le caidreachasan brabhsair. Mar sin, is e am prìomh amas prothaidean a mheudachadh le bhith a’ lughdachadh cosgais leasachaidh agus seilbh air an t-siostam deireannach.

Leig dhuinn cuideam a chuir air 4 prìomh riatanasan airson an t-siostam deireannach:

  • Сstèidhichte air tachartas.
    Tha an siostam an-còmhnaidh deiseil airson a dhol tro shruth thachartasan agus na gnìomhan riatanach a choileanadh;
  • Мscalability.
    Faodar blocaichean fa leth a sgèileadh gu dìreach agus gu còmhnard. Feumaidh an siostam gu lèir a bhith comasach air fàs còmhnard gun chrìoch;
  • Оfulangas lochd.
    Bu chòir gum biodh e comasach dha gach ìre agus seirbheis faighinn air ais gu fèin-ghluasadach bho fhàilligidhean;
  • Гùine freagairt cinnteach.
    Tha ùine luachmhor agus cha bu chòir do luchd-cleachdaidh feitheamh ro fhada.

Cuimhnich air an t-seann sgeulachd sìthiche mu “An einnsean beag a dh’ fhaodadh ”? Gus an urrainn don t-siostam dealbhaichte fàgail gu soirbheachail bhon ìre prototype agus a bhith adhartach, feumaidh a bhunait coinneachadh ris na riatanasan as ìsle SMOG.

Tha aon phuing eile air a chur ri teachdaireachdan mar inneal bun-structair agus mar bhunait airson a h-uile seirbheis: furasta a chleachdadh airson luchd-prògramaidh.

Stèidhichte air tachartas

Airson iarrtas a bhith a’ fàs bho aon fhrithealaiche gu buidheann, feumaidh an ailtireachd aige taic a thoirt do cheangal fuasgailte. Tha am modail asyncronach a’ coinneachadh ris an riatanas seo. Ann, tha an neach a chuir agus an neach a gheibh e a’ gabhail cùram mu eallach fiosrachaidh na teachdaireachd agus na gabh dragh mu sgaoileadh agus slighe taobh a-staigh an t-siostaim.

Scalability

Tha scalability agus èifeachdas siostam ri taobh a chèile. Feumaidh co-phàirtean tagraidh a bhith comasach air na goireasan uile a tha rim faighinn a chleachdadh. Mar as èifeachdaiche as urrainn dhuinn comas a chleachdadh agus mar as fheàrr ar dòighean giullachd, is ann as lugha de dh’ airgead a bhios sinn a’ cosg air uidheamachd.

Taobh a-staigh aon inneal, bidh Erlang a’ cruthachadh àrainneachd air leth farpaiseach. Faodar an cothromachadh eadar co-ionannachd agus co-shìnteachd a shuidheachadh le bhith a’ taghadh an àireamh de snàithleanan siostam obrachaidh a tha rim faighinn leis an Erlang VM agus an àireamh de chlàran a bhios a’ cleachdadh nan snàithleanan sin.
Chan eil pròiseasan Erlang a’ roinn stàite agus ag obair ann am modh neo-bacadh. Tha seo a’ toirt seachad latency an ìre mhath ìosal agus trochur nas àirde na tagraidhean traidiseanta stèidhichte air bacadh. Bidh clàr-ama Erlang a ’dèanamh cinnteach à riarachadh cothromach de CPU agus IO, agus às aonais bacadh a’ leigeil leis an tagradh freagairt eadhon aig àm luchdan no fàilligidhean as àirde.

Aig ìre brabhsair, tha duilgheadas ann le faighinn cuidhteas cuideachd. Tha e cudromach gum bi a h-uile inneal sa bhuidheann air an luchdachadh gu cothromach agus nach eil cus luchd air an lìonra. Smaoinichidh sinn air suidheachadh: bidh trafaic luchd-cleachdaidh a’ laighe air luchd-cothromachaidh a tha a’ tighinn a-steach (haproxy, nginx, msaa), bidh iad a’ cuairteachadh iarrtasan giullachd cho cothromach ‘s a ghabhas eadar an t-seata de backends a tha rim faighinn. Taobh a-staigh bun-structair an tagraidh, chan eil anns an t-seirbheis a tha a’ cur an gnìomh an eadar-aghaidh a tha a dhìth ach am mìle mu dheireadh agus feumaidh i grunn sheirbheisean eile iarraidh gus freagairt a thoirt don chiad iarrtas. Feumaidh iarrtasan taobh a-staigh cuideachd slighe agus cothromachadh.
Gus sruthan dàta a riaghladh gu h-èifeachdach, feumaidh teachdaireachdan eadar-aghaidh a thoirt do luchd-leasachaidh gus rian a chumail air slighe agus cothromachadh luchdan. Taing dha seo, bidh e comasach do luchd-leasachaidh, le bhith a ’cleachdadh pàtrain microservice (cruinneachaidh, neach-ionaid, slabhraidh, meur, msaa), an dà chuid fuasgladh fhaighinn air duilgheadasan àbhaisteach agus an fheadhainn nach ann ainneamh a thig am bàrr.

Bho shealladh gnìomhachais, is e scalability aon de na h-innealan stiùireadh cunnairt. Is e am prìomh rud iarrtasan luchd-cleachdaidh a shàsachadh le bhith a’ cleachdadh an uidheamachd as fheàrr:

  • Nuair a bhios cumhachd uidheamachd ag àrdachadh mar thoradh air adhartas. Cha bhi e leisg air sgàth bathar-bog neo-fhoirfe. Bidh Erlang a ’sgèileadh gu dìreach gu math agus bidh e an-còmhnaidh comasach air a h-uile cores CPU agus cuimhne a tha ri fhaighinn a chleachdadh;
  • Ann an àrainneachdan sgòthan, is urrainn dhuinn na tha de uidheamachd a riaghladh a rèir an luchd gnàthach no ris a bheil dùil agus gealltanas SLA.

fulangas lochd

Beachdaichidh sinn air dà axiom: “Chan eil fàilligidhean ceadaichte” agus “Bidh fàilligidhean ann an-còmhnaidh.” Airson gnìomhachas, tha fàilligeadh bathar-bog a’ ciallachadh call airgid, agus an rud a tha nas miosa, call cliù. A’ cothromachadh eadar call a dh’ fhaodadh a bhith ann agus cosgais leasachadh bathar-bog a tha fulang le lochdan, lorgar co-rèiteachadh gu tric.

Anns a 'gheàrr-ùine, bidh ailtireachd a tha a' toirt a-steach fulangas sgàinidhean a 'sàbhaladh airgead air a bhith a' ceannach fuasglaidhean cruinneachadh far-na-sgeilp. Tha iad daor agus tha biastagan aca cuideachd.
San fhad-ùine, bidh ailtireachd a tha a’ fulang le lochdan a’ pàigheadh ​​air a shon fhèin iomadh uair thairis air a h-uile ìre leasachaidh.
Teachdaireachdan taobh a-staigh a 'bhunait còd a' leigeil leat obrachadh a-mach gu mionaideach an eadar-obrachadh de phàirtean taobh a-staigh an t-siostam aig an ìre leasachaidh. Bidh seo a’ sìmpleachadh na h-obrach airson dèiligeadh ri agus a’ riaghladh fàilligidhean, leis gu bheil a h-uile pàirt riatanach a’ làimhseachadh fàilligidhean, agus tha fios aig an t-siostam a thig às mar as urrainn dhaibh tilleadh gu àbhaisteach às deidh fàilligeadh le dealbhadh.

Freagarrachd

A dh’ aindeoin fàilligidhean, feumaidh an tagradh freagairt a thoirt do iarrtasan agus coinneachadh ris an SLA. Is e an fhìrinn nach eil daoine airson feitheamh, agus mar sin feumaidh gnìomhachasan atharrachadh a rèir sin. Tha dùil gum bi barrachd is barrachd thagraidhean gu math freagairteach.
Bidh tagraidhean freagairteach ag obair faisg air fìor-ùine. Bidh Erlang VM ag obair ann am modh bog fìor-ùine. Airson cuid de raointean, leithid malairt stoc, cungaidh-leigheis, agus smachd uidheamachd gnìomhachais, tha modh cruaidh fìor-ùine cudromach.
Bidh siostaman freagairteach a’ leasachadh UX agus a’ toirt buannachd don ghnìomhachas.

Geàrr-chunntas tòiseachaidh

Nuair a bha mi a’ dealbhadh an artaigil seo, bha mi airson m ’eòlas a cho-roinn mu bhith a’ cruthachadh broker teachdaireachdan agus a ’togail siostaman iom-fhillte stèidhichte air. Ach bha am pàirt teòiridheach agus brosnachail gu math farsaing.
Anns an dàrna pàirt den artaigil, bruidhnidh mi mu na nuances a thaobh buileachadh puingean iomlaid, pàtrain teachdaireachd agus an cleachdadh.
Anns an treas pàirt beachdaichidh sinn air cùisean coitcheann a thaobh eagrachadh sheirbheisean, slighe agus cothromachadh. Bruidhnidh sinn mu dheidhinn taobh practaigeach scalability agus fulangas sgàinidhean air siostaman.

Deireadh a 'chiad phàirt.

photo @lucabravo.

Source: www.habr.com

Cuir beachd ann