Ailtireacht agus cumais Greille Sonraí Tarantool

Ailtireacht agus cumais Greille Sonraí Tarantool

In 2017, bhuaigh muid comórtas chun croílár idirbheartaíochta ghnó infheistíochta Alfa-Bank a fhorbairt agus thosaigh muid ag obair (ag HighLoad++ 2018 le tuarascáil ar chroílár an ghnó infheistíochta. léirithe Vladimir Drynkin, ceann an chroí idirbheartaíochta de ghnó infheistíochta Alfa Bank). Bhí an córas seo ceaptha sonraí idirbheart ó fhoinsí éagsúla a chomhiomlánú i bhformáidí éagsúla, na sonraí a thabhairt isteach i bhfoirm aontaithe, iad a stóráil agus rochtain a sholáthar orthu.

Le linn an phróisis forbartha, tháinig an córas chun cinn agus fuair sé feidhmiúlacht, agus ag pointe éigin thuig muid go raibh muid ag criostalú rud éigin i bhfad níos mó ná bogearraí feidhmchláir a cruthaíodh chun raon tascanna sainithe go docht a réiteach: d'éirigh linn. córas chun feidhmchláir dháilte a thógáil le stóráil leanúnach. Bhí an taithí a fuaireamar mar bhonn le táirge nua - Greille Sonraí Tarantool (TDG).

Ba mhaith liom labhairt faoi ailtireacht TDG agus na réitigh ar tháinig muid orthu le linn an phróisis forbartha, tú a chur in aithne ar an bpríomhfheidhm agus a thaispeáint conas is féidir lenár dtáirge a bheith mar bhunús le réitigh iomlána a thógáil.

Go ailtireachta, roinneamar an córas ina chóras ar leithligh róil, agus tá gach ceann acu freagrach as raon áirithe fadhbanna a réiteach. Cuirtear cineál róil amháin nó níos mó i bhfeidhm i gcás feidhmchlár reatha amháin. Is féidir go mbeadh roinnt ról den chineál céanna i mbraisle:

Ailtireacht agus cumais Greille Sonraí Tarantool

nascóirí

Tá nascóirí freagrach as cumarsáid leis an domhan lasmuigh; is é an tasc atá aige glacadh leis an iarratas, é a pharsáil, agus má éiríonn leis sin, ansin na sonraí a sheoladh chuig an bpróiseálaí ionchuir lena bpróiseáil. Tacaímid le formáidí HTTP, SOAP, Kafka, FIX. Ligeann an ailtireacht duit go simplí tacaíocht a chur leis d’fhormáidí nua, le tacaíocht do IBM MQ ag teacht go luath. Má theip ar pharsáil an iarratais, seolfaidh an cónascaire earráid ar ais; ar shlí eile, freagróidh sé gur éirigh leis an iarratas a phróiseáil, fiú má tharla earráid le linn a próiseála breise. Rinneadh é seo go sonrach chun oibriú le córais nach bhfuil a fhios acu conas iarratais a dhéanamh arís - nó, os a choinne sin, é a dhéanamh ró-sheasmhach. Chun nach gcailltear sonraí, úsáidtear scuaine deisiúcháin: téann an réad isteach ann ar dtús agus ní dhéantar ach próiseáil rathúil a bhaint as. Is féidir leis an riarthóir foláirimh a fháil faoi rudaí atá fágtha sa scuaine deisiúcháin, agus tar éis deireadh a chur le hearráid bhogearraí nó teip crua-earraí, bain triail eile as.

Próiseálaí ionchuir

Déanann an próiseálaí Ionchuir na sonraí a fuarthas a rangú de réir tréithe sainiúla agus glaonn sé ar phróiseálaithe cuí. Is cód Lua iad láimhseálaithe a ritheann i mbosca gainimh, mar sin ní féidir leo cur isteach ar fheidhmiú an chórais. Ag an gcéim seo, is féidir na sonraí a laghdú go dtí an fhoirm riachtanach, agus, más gá, is féidir líon treallach tascanna a sheoladh ar féidir leo an loighic riachtanach a chur i bhfeidhm. Mar shampla, sa táirge MDM (Máistir Sonraí Bainistíochta) tógtha ar Tarantool Data Greille, nuair a chuirtear úsáideoir nua leis, ionas nach gcuirfear moill ar phróiseáil an iarratais, seolaimid cruthú taifead órga mar thasc ar leith. Tacaíonn an bosca gainimh le hiarratais ar léamh, athrú agus sonraí a chur leis, ceadaíonn sé duit feidhm éigin a dhéanamh ar gach ról den chineál stórála agus comhiomlánú an toraidh (léarscáil / laghdú).

Is féidir cur síos a dhéanamh ar láimhseálaithe i gcomhaid:

sum.lua

local x, y = unpack(...)
return x + y

Agus ansin, dearbhaithe sa chumraíocht:

functions:
  sum: { __file: sum.lua }

Cén fáth Lua? Is teanga an-simplí í Lua. Bunaithe ar ár dtaithí, cúpla uair an chloig tar éis aithne a chur air, tosaíonn daoine ag scríobh cód a réitíonn a bhfadhb. Agus ní hamháin gur forbróirí gairmiúla iad seo, ach, mar shampla, anailísithe. Ina theannta sin, a bhuíochas leis an tiomsaitheoir jit, ritheann Lua go han-tapa.

stóráil

Stórálann stóráil sonraí marthanacha. Sula ndéantar iad a shábháil, déantar sonraí a bhailíochtú i gcoinne scéimre na sonraí. Bainimid úsáid as formáid leathnaithe chun cur síos a dhéanamh ar an gciorcad Apache Avro. Sampla:

{
    "name": "User",
    "type": "record",
    "logicalType": "Aggregate",
    "fields": [ 
        { "name": "id", "type": "string"}, 
        {"name": "first_name", "type": "string"}, 
        {"name": "last_name", "type": "string"} 
    ], 
    "indexes": ["id"] 
}

Bunaithe ar an gcur síos seo, gintear DDL (Teanga Sainmhínithe Sonraí) go huathoibríoch don Tarantula DBMS agus GrafQL scéimre le haghaidh rochtana sonraí.

Tacaítear le macasamhlú sonraí asincrónacha (tá pleananna ann ceann sioncronach a chur leis).

Próiseálaí aschuir

Uaireanta is gá fógra a thabhairt do thomhaltóirí seachtracha faoi theacht isteach sonraí nua; chun na críche sin, tá ról an phróiseálaí Aschuir ann. Tar éis na sonraí a shábháil, is féidir é a chur ar aghaidh chuig an láimhseálaí cuí (mar shampla, é a thabhairt chuig an bhfoirm a éilíonn an tomhaltóir) - agus ansin é a chur ar aghaidh chuig an gcónascaire le haghaidh seolta. Úsáidtear scuaine deisiúcháin anseo freisin: mura nglacfaidh éinne leis an réad, is féidir leis an riarthóir triail a bhaint as níos déanaí.

Scálú

Tá róil an chónascaire, an próiseálaí ionchuir agus an próiseálaí aschuir gan stát, rud a ligeann dúinn an córas a scála go cothrománach trí chásanna feidhmchláir nua a chur leis agus an cineál róil atá ag teastáil cumasaithe. Úsáidtear stóráil le haghaidh scálaithe cothrománach cur chuige chun braisle a eagrú ag baint úsáide as buicéid fhíorúla. Tar éis freastalaí nua a chur leis, bogtar cuid de na buicéid ó na seanfhreastalaithe chuig an bhfreastalaí nua sa chúlra; tarlaíonn sé seo go trédhearcach d'úsáideoirí agus ní chuireann sé isteach ar oibriú an chórais ar fad.

Airíonna Sonraí

Is féidir le rudaí a bheith an-mhór agus rudaí eile a bheith iontu. Cinnteoimid adaimh maidir le sonraí a shuimiú agus a nuashonrú trí réad a bhfuil gach spleáchas air a stóráil in aon bhuicéad fíorúil amháin. Cuireann sé seo cosc ​​ar an réad a bheith “leathadh amach” thar roinnt freastalaithe fisiceacha.

Tacaítear leis an leaganú: cruthaítear leagan nua le gach nuashonrú d’earra, agus is féidir linn píosa ama a ghlacadh i gcónaí agus féachaint conas a d’fhéach an domhan ansin. I gcás sonraí nach bhfuil stair fhada ag teastáil uathu, is féidir linn líon na leaganacha a theorannú nó fiú ceann amháin a stóráil - an ceann is déanaí - is é sin, leagan a dhíchumasú go bunúsach do chineál áirithe. Is féidir leat teorainn ama a chur leis an stair freisin: mar shampla, scrios gach réad de chineál áirithe atá níos sine ná bliain amháin. Tugtar tacaíocht freisin don chartlannú: is féidir linn rudaí atá níos sine ná an t-am sonraithe a dhíluchtú, rud a fhágann spás sa bhraisle a shaoradh.

tascanna

I measc na ngnéithe suimiúla, is fiú a thabhairt faoi deara an cumas tascanna a sheoladh ar sceideal, ar iarratas an úsáideora, nó go ríomhchláraithe ón mbosca gainimh:

Ailtireacht agus cumais Greille Sonraí Tarantool

Anseo feicimid ról eile - rádala. Tá an ról seo gan stát, agus is féidir cásanna iarratais breise leis an ról seo a chur leis an gcnuasach de réir mar is gá. Is é freagracht an rádala tascanna a chur i gcrích. Mar a luadh, is féidir tascanna nua a ghiniúint as an mbosca gainimh; déantar iad a shábháil i scuaine ar stóráil agus ansin chun báis ar an rádala. Job a thugtar ar an gcineál seo taisc. Tá cineál taisc againn freisin ar a dtugtar Tasc - is tascanna iad seo atá sainithe ag úsáideoirí a ritheann ar sceideal (ag baint úsáide as comhréir cron) nó ar éileamh. Chun tascanna den sórt sin a sheoladh agus a rianú, tá bainisteoir tasc áisiúil againn. Chun go mbeidh an fheidhmiúlacht seo ar fáil, ní mór duit an ról sceidealóra a chumasú; tá stát ag an ról seo, mar sin ní dhéanann sé scála, rud nach bhfuil ag teastáil, áfach; ag an am céanna, cosúil le gach ról eile, is féidir go mbeadh macasamhail ann a thosaíonn ag obair má dhiúltaíonn an máistir go tobann.

Logálaí

Tá ról eile ar a dtugtar logger. Bailíonn sé logaí ó gach ball den bhraisle agus cuireann sé comhéadan ar fáil chun iad a uaslódáil agus féachaint orthu tríd an gcomhéadan gréasáin.

Seirbhísí

Is fiú a lua go ndéanann an córas sé éasca seirbhísí a chruthú. Sa chomhad cumraíochta, is féidir leat a shonrú cé na hiarratais a sheoltar chuig láimhseálaí scríofa ag an úsáideoir a ritheann sa bhosca gainimh. Sa láimhseálaí seo, is féidir leat, mar shampla, ceist anailíseach de chineál éigin a reáchtáil agus an toradh a thabhairt ar ais.

Tá cur síos ar an tseirbhís sa chomhad cumraíochta:

services:
   sum:
      doc: "adds two numbers"
      function: sum
      return_type: int
      args:
         x: int
         y: int

Gintear an API GraphQL go huathoibríoch agus bíonn an tseirbhís ar fáil le glaoch a chur air:

query {
   sum(x: 1, y: 2) 
}

Cuirfidh sé seo glaoch ar an láimhseálaí suma thabharfaidh an toradh ar ais:

3

Próifíl Iarratas agus Méadracht

Chun feidhmiú an chórais agus iarratais phróifílithe a thuiscint, chuireamar tacaíocht don phrótacal OpenTracing i bhfeidhm. Is féidir leis an gcóras faisnéis a sheoladh ar éileamh chuig uirlisí a thacaíonn leis an bprótacal seo, mar Zipkin, a ligfidh duit tuiscint a fháil ar conas a cuireadh an t-iarratas i gcrích:

Ailtireacht agus cumais Greille Sonraí Tarantool

Ar ndóigh, soláthraíonn an córas méadracht inmheánach ar féidir a bhailiú ag baint úsáide as Prometheus agus a léirshamhlú le Grafana.

Imscaradh

Is féidir Greille Sonraí Tarantool a imscaradh ó phacáistí RPM nó ó chartlann, ag baint úsáide as fóntais ón dáileadh nó Ansible, tá tacaíocht ann freisin do Kubernetes (Oibreoir Tarantool Kubernetes).

Déantar an t-iarratas a chuireann an loighic gnó (cumraíocht, láimhseálaithe) i bhfeidhm a luchtú isteach sa bhraisle Eangach Sonraí Tarantool imscartha i bhfoirm cartlainne tríd an Chomhéadain nó ag baint úsáide as script tríd an API a sholáthraíonn dúinn.

Iarratais Samplacha

Cad iad na feidhmchláir is féidir a chruthú trí úsáid a bhaint as Greille Sonraí Tarantool? Go deimhin, baineann formhór na dtascanna gnó le próiseáil, stóráil agus rochtain ar shreabhadh sonraí. Dá bhrí sin, má tá sruthanna móra sonraí agat ar gá iad a stóráil agus a rochtain go sábháilte, ansin is féidir lenár dtáirge go leor ama forbartha a shábháil duit agus díriú ar do loighic ghnó.

Mar shampla, ba mhaith linn faisnéis a bhailiú faoin margadh eastát réadach, ionas go mbeidh sa todhchaí, mar shampla, beidh faisnéis againn faoi na tairiscintí is fearr. Sa chás seo, cuirfimid béim ar na tascanna seo a leanas:

  1. Is iad na róbait a bhailíonn faisnéis ó fhoinsí oscailte ár bhfoinsí sonraí. Is féidir leat an fhadhb seo a réiteach trí úsáid a bhaint as réitigh réamhdhéanta nó ag scríobh cód i dteanga ar bith.
  2. Ar aghaidh, glacfaidh Greille Sonraí Tarantool na sonraí agus sábhálfaidh siad iad. Má tá formáid na sonraí ó fhoinsí éagsúla difriúil, ansin is féidir leat cód a scríobh i Lua a dhéanfaidh an comhshó go formáid amháin. Ag an gcéim réamhphróiseála, beidh tú in ann freisin, mar shampla, tairiscintí dúblacha a scagadh nó faisnéis faoi ghníomhairí atá ag obair sa mhargadh sa bhunachar sonraí a nuashonrú.
  3. Anois tá réiteach Inscálaithe agat cheana féin i mbraisle is féidir a líonadh le sonraí agus roghnúcháin sonraí a dhéanamh. Ansin is féidir leat feidhmiúlacht nua a chur i bhfeidhm, mar shampla, seirbhís a scríobh a dhéanfaidh iarratas ar shonraí agus a thabharfaidh an tairiscint is buntáistí in aghaidh an lae - beidh gá le cúpla líne sa chomhad cumraíochta agus beagán cód Lua.

Cad atá romhainn?

Is é an tosaíocht atá againn ná éascaíocht na forbartha a fheabhsú Greille Sonraí Tarantool. Mar shampla, is IDE é seo a thacaíonn le láimhseálaithe próifílithe agus dífhabhtaithe a ritheann i mbosca gainimh.

Tugaimid aird mhór ar shaincheisteanna sábháilteachta freisin. Faoi láthair táimid ag deimhniú FSTEC na Rúise chun an leibhéal ard slándála a dhearbhú agus chun na ceanglais maidir le deimhniú táirgí bogearraí a úsáidtear i gcórais faisnéise sonraí pearsanta agus córais faisnéise rialtais a chomhlíonadh.

Foinse: will.com

Add a comment