Mehaho le bokhoni ba Tarantool Data Grid

Mehaho le bokhoni ba Tarantool Data Grid

Ka 2017, re hapile tlholisano ea ho nts'etsapele khoebo ea matsete ea Alfa-Bank mme ra qala mosebetsi (ho HighLoad ++ 2018 ka tlaleho ea mantlha ea khoebo ea matsete. bua Vladimir Drynkin, hlooho ea mantlha ea khoebo ea matsete ea Alfa Bank). Sistimi ena e ne e lokela ho kopanya data ea transaction ho tsoa mehloling e fapaneng ka lifomate tse fapaneng, ho tlisa data ka mokhoa o kopaneng, ho e boloka le ho fana ka phihlello ho eona.

Nakong ea ts'ebetso ea nts'etsopele, sistimi e ile ea iphetola le ho fumana ts'ebetso, 'me ka nako e' ngoe re ile ra hlokomela hore re ne re totobatsa ho hong ho fetang feela software ea ts'ebeliso e etselitsoeng ho rarolla letoto la mesebetsi e hlalositsoeng hantle: re atlehile. tsamaiso ea ho haha ​​likopo tse ajoang ka polokelo e tsitsitseng. Boiphihlelo boo re bo fumaneng bo thehile motheo oa sehlahisoa se secha - Tarantool Data Grid (TDG).

Ke batla ho bua ka meralo ea TDG le litharollo tseo re tlileng ho tsona nakong ea ts'ebetso ea nts'etsopele, ho u tsebisa ts'ebetsong ea mantlha le ho bonts'a hore na sehlahisoa sa rona se ka fetoha motheo oa ho aha litharollo tse felletseng joang.

Ka mokhoa oa meralo, re ile ra arola sistimi hore e arohane likarolo, e ’ngoe le e ’ngoe ea tsona e ikarabellang bakeng sa ho rarolla letoto le itseng la mathata. Mohlala o le mong oa ts'ebeliso o sebelisa mofuta o le mong kapa ho feta. Ho ka ba le likarolo tse 'maloa tsa mofuta o le mong sehlopheng:

Mehaho le bokhoni ba Tarantool Data Grid

sehokedi

Mohokahanyi o ikarabella bakeng sa puisano le lefatše le kantle; mosebetsi oa eona ke ho amohela kopo, ho e hlalosa, 'me haeba sena se atleha, joale romela data bakeng sa ho sebetsa ho processor ea ho kenya. Re tšehetsa liforomo tsa HTTP, SEAP, Kafka, FIX. Meaho e u lumella ho eketsa tšehetso bakeng sa lifomate tse ncha, ka tšehetso ea IBM MQ e tlang haufinyane. Haeba ho fetisa kopo ho hlolehile, sehokelo se tla khutlisa phoso; ho seng joalo, e tla arabela hore kopo e sebelitsoe ka katleho, le haeba phoso e etsahetse nakong ea ts'ebetso ea eona e tsoelang pele. Sena se entsoe ka ho khetheha e le ho sebetsa le litsamaiso tse sa tsebeng ho pheta likopo - kapa, ho fapana le hoo, li etse joalo ka ho phehella. E le hore u se ke ua lahleheloa ke data, ho sebelisoa queue ea ho lokisa: ntho e qala ho kena ho eona 'me feela ka mor'a hore ts'ebetso e atlehileng e tlosoe ho eona. Mookameli a ka fumana litlhokomeliso mabapi le lintho tse setseng moleng oa ho lokisa, 'me ka mor'a ho felisa phoso ea software kapa hardware, leka hape.

Sesebelisoa sa ho kenya

Motlakase oa Input o hlopha data e amohetsoeng ho latela likarolo tsa sebopeho ebe o letsetsa li-processor tse nepahetseng. Li-Handlers ke khoutu ea Lua e tsamaeang ka lebokoseng la lehlabathe, kahoo li ke ke tsa ama ts'ebetso ea sistimi. Mothating ona, data e ka fokotsoa hore e be foromo e hlokahalang, 'me, ha ho hlokahala, ho ka qalisoa palo e sa lebelloang ea mesebetsi e ka kenyang ts'ebetso e hlokahalang. Ka mohlala, ho MDM (Master Data Management) sehlahisoa se hahiloeng ho Tarantool Data Grid, ha u eketsa mosebedisi e mocha, e le hore re se ke ra liehisa ts'ebetso ea kopo, re qala ho theha rekoto ea khauta e le mosebetsi o fapaneng. Lebokose la lehlabathe le tšehetsa likopo tsa ho bala, ho fetola le ho eketsa data, ho u lumella ho etsa mesebetsi e itseng mesebetsing eohle ea mofuta oa polokelo le ho bokella sephetho ('mapa/fokotsa).

Li-Handlers li ka hlalosoa ka lifaele:

sum.lua

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

'Me ka mor'a moo, e phatlalalitsoe ho tlhophiso:

functions:
  sum: { __file: sum.lua }

Ke hobane'ng ha Lua? Selua ke puo e bonolo haholo. Ho latela boiphihlelo ba rona, lihora tse 'maloa ka mor'a ho e tseba, batho ba qala ho ngola khoutu e rarollang bothata ba bona. 'Me bana hase feela baetsi ba litsebi, empa, mohlala, bahlahlobisisi. Ho phaella moo, ka lebaka la moqapi oa jit, Lua e matha ka potlako haholo.

Storage

Bobolokelo bo boloka lintlha tse tsoelang pele. Pele o boloka, data e netefatsoa khahlano le schema ea data. Ho hlalosa potoloho re sebelisa sebopeho se atolositsoeng Apache Avro. Mohlala:

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

Ho ipapisitsoe le tlhaloso ena, DDL (Puo ea Tlhaloso ea data) e hlahisoa ka bo eona bakeng sa Tarantula DBMS le KerafoQL schema bakeng sa phihlello ya data.

Phetolelo ea data ea Asynchronous e tšehetsoa (ho na le merero ea ho eketsa e lumellanang).

Mochine o hlahisang lihlahisoa

Ka linako tse ling hoa hlokahala ho tsebisa bareki ba kantle ka ho fihla ha data e ncha; molemong ona, ho na le karolo ea processor ea Output. Ka mor'a ho boloka data, e ka fetisetsoa ho motho ea tsamaisanang le eona (mohlala, ho e tlisa foromong e hlokoang ke moreki) - ebe e fetisetsoa ho sehokelo bakeng sa ho romela. Letoto la ho lokisa le boetse le sebelisoa mona: haeba ho se motho ea amohetseng ntho eo, mookameli a ka leka hape hamorao.

Katoloso

Sehokelo, processor ea ho kenya, le likarolo tsa processor ea tlhahiso ha li na boemo, li re lumella ho lekanya sistimi ka ho eketsa maemo a macha a ts'ebeliso ka mofuta oa karolo oo re o batlang o lumelletsoe. Polokelo e sebelisoa bakeng sa sekala se rapameng mokgoa ho hlophisa sehlopha ka ho sebedisa dibakete tsa sebele. Ka mor'a ho eketsa seva se secha, linkho tse ling tse tsoang ho li-server tsa khale li isoa ho seva se secha ka morao; sena se etsahala pepeneneng ho basebelisi mme ha se ame ts'ebetso ea sistimi eohle.

Lintlha tsa Thepa

Lintho li ka ba kholo haholo 'me li na le lintho tse ling. Re netefatsa atomism ea ho eketsa le ho ntlafatsa data ka ho boloka ntho e nang le litšepeho tsohle ka nkhong e le 'ngoe ea sebele. Sena se thibela ntho hore e se ke ea " hasana" ho li-server tse 'maloa tsa' mele.

Phetolelo e ea tšehetsoa: ntlafatso e 'ngoe le e' ngoe ea ntho e etsa mofuta o mocha, 'me re ka lula re nka nako ho bona hore na lefatše le ne le shebahala joang ka nako eo. Bakeng sa lintlha tse sa hlokeng nalane e telele, re ka fokotsa palo ea liphetolelo kapa ra boloka e le 'ngoe feela - ea morao-rao - ke hore, ha e le hantle re tima phetolelo ea mofuta o itseng. Hape o ka fokotsa nalane ka nako: mohlala, hlakola lintho tsohle tsa mofuta o itseng oa khale ho feta selemo se le seng. Ho boloka boitsebiso ho boetse ho tšehetsoa: re ka laolla lintho tsa khale ho feta nako e behiloeng, ra lokolla sebaka ka har'a sehlopha.

mesebetsi

Har'a likarolo tse khahlisang, ho bohlokoa ho ela hloko bokhoni ba ho qala mesebetsi ka kemiso, ka kopo ea mosebelisi, kapa ka lenaneo ho tsoa lebokoseng la lehlabathe:

Mehaho le bokhoni ba Tarantool Data Grid

Mona re bona karolo e 'ngoe - semathi. Karolo ena ha e na boemo, 'me liketsahalo tse ling tsa kopo tse nang le karolo ena li ka eketsoa sehlopheng ha ho hlokahala. Boikarabelo ba semathi ke ho phetha mesebetsi. Joalokaha ho boletsoe, hoa khoneha ho hlahisa mesebetsi e mecha ho tloha lebokoseng la lehlabathe; li bolokoa moleng oa polokelo ebe li bolaoa ho semathi. Mosebetsi oa mofuta ona o bitsoa Jobo. Re boetse re na le mofuta oa mosebetsi o bitsoang Task - tsena ke mesebetsi e hlalosoang ke basebelisi e sebetsang ka kemiso (ho sebelisa cron syntax) kapa ha ho hlokahala. Ho qala le ho lata mesebetsi e joalo, re na le mookameli oa mosebetsi ea loketseng. E le hore ts'ebetso ena e fumanehe, o tlameha ho nolofalletsa karolo ea kemiso; karolo ena e na le mmuso, kahoo ha e na tekanyo, eo, leha ho le joalo, e sa hlokeheng; ka nako e ts'oanang, joalo ka mesebetsi e meng kaofela, e ka ba le replica e qalang ho sebetsa haeba monghali a hana ka tšohanyetso.

Serengoa

Karolo e 'ngoe e bitsoa logger. E bokella lits'oants'o tse tsoang ho litho tsohle tsa sehlopha mme e fana ka sebopeho sa ho li kenya le ho li shebella ka sebopeho sa marang-rang.

Litšebeletso

Ke habohlokoa ho bolela hore tsamaiso e etsa hore ho be bonolo ho etsa litšebeletso. Ho faele ea tlhophiso, o ka hlakisa hore na ke likopo life tse rometsoeng ho sebatli se ngotsoeng ke mosebelisi se sebetsang ka har'a sandbox. Ho sena se sebetsanang, u ka etsa mohlala, ho matha mofuta oa potso ea tlhahlobo 'me u khutlisetse sephetho.

Tšebeletso e hlalositsoe ho faele ea tlhophiso:

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

GraphQL API e hlahisoa ka bo eona mme ts'ebeletso e fumaneha bakeng sa ho letsetsa:

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

Sena se tla bitsa motshwari sume tla khutlisa sephetho:

3

Potso Profileing le Metrics

Ho utloisisa ts'ebetso ea sistimi le likopo tsa profilthara, re kentse ts'ehetso bakeng sa protocol ea OpenTracing. Sistimi e ka romella leseli mabapi le tlhoko ho lisebelisoa tse tšehetsang protocol ena, joalo ka Zipkin, e tla u lumella ho utloisisa hore na kopo e entsoe joang:

Mehaho le bokhoni ba Tarantool Data Grid

Ka tlhaho, sistimi e fana ka metrics ea kahare e ka bokelloang ho sebelisoa Prometheus le ho bonoa ka Grafana.

Tsamaisa

Tarantool Data Grid e ka romelloa ho tsoa ho liphutheloana tsa RPM kapa polokelong ea litaba, e sebelisa sesebelisoa se tsoang ho ajoa kapa Ansible, ho boetse ho na le ts'ehetso bakeng sa Kubernetes (Tarantool Kubernetes Opereishene).

Sesebelisoa se sebelisang mohopolo oa khoebo (litlhophiso, litšoantšiso) se kentsoe ho sehlopha sa Tarantool Data Grid e kentsoeng ka mokhoa oa polokelo ea litaba ka UI kapa ho sebelisa mongolo ho API eo re e filoeng ke rona.

Mehlala ea Lisebelisoa

Ke lisebelisoa life tse ka etsoang ho sebelisa Tarantool Data Grid? Ha e le hantle, mesebetsi e mengata ea khoebo e amana ka tsela e itseng le ho sebetsa, ho boloka le ho fumana phallo ea data. Ka hona, haeba u na le melapo e mengata ea data e hlokang ho bolokoa ka mokhoa o sireletsehileng le ho fihlella, joale sehlahisoa sa rona se ka u bolokela nako e ngata ea nts'etsopele mme se tsepamise maikutlo mohopolong oa khoebo ea hau.

Ka mohlala, re batla ho bokella tlhahisoleseding e mabapi le 'maraka oa thekiso ea matlo, e le hore nakong e tlang, ka mohlala, re tla ba le tlhahisoleseding mabapi le lits'ebeletso tse ntle ka ho fetisisa. Tabeng ena, re tla totobatsa mesebetsi e latelang:

  1. Liroboto tse bokellang tlhahisoleseling ho tsoa mehloling e bulehileng e tla ba mehloli ea rona ea data. U ka rarolla bothata bona ka ho sebelisa litharollo tse lokiselitsoeng kapa ho ngola khoutu ka puo efe kapa efe.
  2. Ka mor'a moo, Tarantool Data Grid e tla amohela le ho boloka data. Haeba sebopeho sa data se tsoang mehloling e fapaneng se fapane, joale u ka ngola khoutu ka Lua e tla etsa phetoho ho sebopeho se le seng. Boemong ba pele ho ts'ebetso, u tla khona, ho etsa mohlala, ho sefa litefiso tse habeli kapa ho ntlafatsa tlhahisoleseling mabapi le baemeli ba sebetsang 'marakeng sebakeng sa polokelo ea litaba.
  3. Hona joale u se u ntse u e-na le tharollo ea scalable sehlopheng se ka tlatsoang ka data le ho etsa likhetho tsa data. Joale o ka kenya ts'ebetsong ts'ebetso e ncha, ka mohlala, ngola tšebeletso e tla etsa kopo ea data le ho fana ka tlhahiso e ntle ka ho fetisisa ka letsatsi - sena se tla hloka mela e seng mekae ho faele ea tlhophiso le khoutu e nyenyane ea Lua.

Ke'ng e latelang?

Taba ea rona ea mantlha ke ho ntlafatsa boiketlo ba nts'etsopele re sebelisa Tarantool Data Grid. Mohlala, ena ke IDE e nang le ts'ehetso bakeng sa li-profile le li-debugging handlers tse sebetsang ka har'a sandbox.

Re ela hloko haholo litaba tsa polokeho. Hona joale re ntse re etsa setifikeiti ke FSTEC ea Russia ho netefatsa boemo bo phahameng ba ts'ireletso le ho fihlela litlhoko tsa netefatso ea lihlahisoa tsa software tse sebelisoang lits'ebetsong tsa tlhaiso-leseling ea data le litsamaiso tsa tlhahisoleseling tsa mmuso.

Source: www.habr.com

Eketsa ka tlhaloso