Fausia ma gafatia o Tarantool Data Grid

Fausia ma gafatia o Tarantool Data Grid

I le 2017, na matou manumalo ai i se tauvaga e atiaʻe ai fefaʻatauaʻiga autu o pisinisi faʻafaigaluega a Alfa-Bank ma amata galue (i HighLoad ++ 2018 faʻatasi ai ma se lipoti i luga o le autu o le pisinisi teufaafaigaluega. tautala Vladimir Drynkin, o le ulu o le autu o fefaʻatauaiga o pisinisi faʻafaigaluega a Alfa Bank). O lenei faiga e tatau ona tuʻufaʻatasia faʻamatalaga o fefaʻatauaiga mai punaoa eseese i faʻasologa eseese, aumai faʻamaumauga i se tulaga faʻatasi, teuina ma tuʻuina atu avanoa i ai.

I le faagasologa o le atinaʻe, na faʻaleleia le faiga ma maua ai galuega, ma i se taimi na matou iloa ai o loʻo matou faʻamalamalamaina se mea e sili atu nai lo na o polokalama faakomepiuta na faia e foia ai se faʻamalamalamaga manino o galuega: na matou manuia. faiga mo le fausiaina o talosaga tufatufaina ma teuina faifai pea. O le poto masani na matou mauaina na avea ma faavae o se oloa fou - Tarantool Data Grid (TDG).

Ou te fia talanoa e uiga i le fausaga o le TDG ma fofo na matou oʻo mai i le taimi o le atinaʻe, faʻafeiloaʻi oe i le galuega autu ma faʻaalia pe faʻapefea ona avea a matou oloa ma faʻavae mo le fausiaina o fofo atoatoa.

I le faʻataʻitaʻiga, na matou vaevaeina le faiga i ni vaega eseese matafaioi, o ia mea ta'itasi e nafa ma le fo'ia o le tele o fa'afitauli. O se fa'ata'ita'iga ta'avale e tasi e fa'atinoina se tasi pe sili atu fo'i ituaiga o matafaioi. E mafai ona tele ni matafaioi o le ituaiga tutusa i se fuifui:

Fausia ma gafatia o Tarantool Data Grid

Connector

Feso'ota'i e nafa ma feso'ota'iga ma le lalolagi i fafo; o lana galuega o le talia lea o le talosaga, faʻasalalau, ma afai e manuia lenei mea, ona auina atu lea o faʻamatalaga mo le faʻaogaina i le faʻaogaina o mea. Matou te lagolagoina HTTP, SOAP, Kafka, FIX formats. O le fausaga e mafai ai ona e faʻaopoopoina le lagolago mo faʻasologa fou, faʻatasi ai ma le lagolago mo le IBM MQ o loʻo lata mai. Afai e le manuia le fa'avasegaina o le talosaga, o le a toe fa'afo'i mai e le so'o se mea sese; a leai, o le a tali mai o le talosaga na faʻatautaia ma le manuia, e tusa lava pe na tupu se mea sese i le taimi o lona faagasologa. Na faia faʻapitoa lenei mea ina ia mafai ai ona galulue faʻatasi ma faiga e le iloa pe faʻafefea ona toe fai talosaga - pe, i se isi itu, ia faia pea lava pea. Ina ia aua neʻi leiloa faʻamatalaga, e faʻaaogaina se laina toe faʻaleleia: o le mea muamua e oʻo i totonu ma naʻo le maeʻa ona aveese le gaioiga manuia mai ai. E mafai e le pule ona maua fa'aaliga e uiga i meafaitino o lo'o totoe i le laina fa'alelei, ma a uma ona fa'ate'aina se fa'aletonu polokalame po'o mea fa'aletonu, toe taumafai.

Fa'aulufalega

O le Input processor e fa'avasegaina fa'amaumauga maua e tusa ai ma uiga fa'apitoa ma vala'au fa'agaioiga talafeagai. O fa'atau o le Lua code lea e fa'agasolo i totonu o se pusa oneone, o lea e le mafai ai ona a'afia le fa'agaioiga o le faiga. I lenei laʻasaga, e mafai ona faʻaititia faʻamaumauga i le pepa manaʻomia, ma, pe a manaʻomia, e mafai ona faʻalauiloa se numera faʻapitoa o galuega e mafai ona faʻatinoina le manatu talafeagai. Mo se faʻataʻitaʻiga, i le MDM (Master Data Management) oloa fausia i luga o le Tarantool Data Grid, pe a faʻaopoopoina se tagata fou, ina ia aua neʻi faʻagesegese le faagasologa o le talosaga, matou te faʻalauiloaina le fatuina o se faʻamaumauga auro o se galuega ese. E lagolagoina e le sandbox talosaga mo le faitau, suia ma le faʻaopoopoina o faʻamaumauga, e mafai ai ona e faia ni galuega i luga o matafaioi uma o le ituaiga teuina ma le faʻapipiʻiina o le taunuuga (faʻafanua / faʻaititia).

E mafai ona faʻamatalaina tagata faʻatau i faila:

sum.lua

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

Ona, faʻaalia i le faʻatulagaga:

functions:
  sum: { __file: sum.lua }

Aisea e Lua? Lua o se gagana faigofie tele. Faʻavae i luga o lo matou poto masani, i ni nai itula talu ona iloa, e amata e tagata ona tusia tulafono e foia ai lo latou faʻafitauli. Ma o nei mea e le gata o tagata atinaʻe faʻapolofesa, ae, mo se faʻataʻitaʻiga, tagata suʻesuʻe. E le gata i lea, fa'afetai i le jit compiler, e vave tele le tamo'e o Lua.

teuina o Meaai

Teuga teu fa'amaumauga tumau. A'o le'i fa'asaoina, e fa'amaonia fa'amaumauga e fa'atatau i le fa'asologa o fa'amaumauga. Ina ia faʻamatalaina le matagaluega matou te faʻaaogaina se faʻalautele faʻatulagaina Apache Avro. O se faʻataʻitaʻiga:

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

Faʻavae i luga o lenei faʻamatalaga, DDL (Data Definition Language) e otometi lava ona gaosia mo le Tarantula DBMS ma GraphQL fuafuaga mo le mauaina o fa'amatalaga.

E lagolagoina le fa'asologa o fa'amaumauga (o lo'o i ai fuafuaga e fa'aopoopo le tasi).

Fa'atonuga o mea

O nisi taimi e tatau ona logoina tagata faʻatau fafo e uiga i le oʻo mai o faʻamatalaga fou; mo lenei faʻamoemoe, o loʻo i ai le vaega o le Output processor. A maeʻa ona faʻasaoina faʻamatalaga, e mafai ona tuʻuina atu i le tagata e talafeagai (mo se faʻataʻitaʻiga, e aumai i le pepa e manaʻomia e le tagata faʻatau) - ona pasi atu lea i le fesoʻotaʻiga mo le lafoina. O lo'o fa'aogaina fo'i se laina fa'aleleia iinei: afai e leai se tasi na talia le mea, e mafai e le pule ona toe taumafai mulimuli ane.

Fuaina

O le feso'ota'iga, fa'aoga fa'aoga, ma galuega fa'atino galuega e leai ni fa'ailoga, e mafai ai ona matou fa'alava le faiga fa'alava i le na'o le fa'aopoopoina o mea fa'aoga fou ma le ituaiga matafaioi e mana'omia. E fa'aoga le teuina mo le fa'alava fa'alava le auala i le fa'atulagaina o se fuifui e fa'aaoga ai pakete mata'utia. A maeʻa ona faʻapipiʻi se server fou, o nisi o pakete mai server tuai e faʻafeiloaʻi i le server fou i tua; e tupu manino lenei mea i tagata faʻaoga ma e le afaina ai le faʻaogaina o le polokalama atoa.

Meatotino Fa'amaumauga

O mea faitino e mafai ona lapopoa tele ma e iai isi mea. Matou te faʻamautinoa le atomicity o le faʻaopoopoina ma le faʻafouina o faʻamaumauga e ala i le teuina o se mea faʻatasi ma faʻalagolago uma i totonu o se pakete virtuali se tasi. O lenei mea e taofia ai le mea mai le "faasalalau atu" i luga o le tele o sapalai faaletino.

E lagolagoina le fa'aliliuga: o fa'afouga ta'itasi o se mea faitino e fausia ai se fa'amatalaga fou, ma e mafai lava ona tatou fa'aalu sina taimi ma va'ai pe fa'apefea le lalolagi i lena taimi. Mo fa'amaumauga e le mana'omia se tala'aga umi, e mafai ona fa'atapula'aina le aofa'i o fa'aliliuga po'o le teuina na'o le tasi -le mea aupito lata mai -o lona uiga, e matua fa'amalo le fa'aliliuga mo se ituaiga. E mafai fo'i ona fa'atapula'aina le tala fa'asolopito i le taimi: mo se fa'ata'ita'iga, tape uma mea faitino o se ituaiga e sili atu i le 1 le tausaga. E lagolagoina fo'i le fa'amaumauga: e mafai ona tatou la'u ese mea e sili atu nai lo le taimi fa'atonu, fa'asa'oloto avanoa i le fuifui.

Galuega

Faatasi ai ma mea manaia, e taua le matauina o le mafai ona faʻalauiloa galuega i luga o se faʻatulagaga, i le talosaga a le tagata faʻaoga, poʻo le polokalame mai le sandbox:

Fausia ma gafatia o Tarantool Data Grid

O iinei tatou te iloa ai se isi matafaioi - tamoʻe. O lenei matafaioi e leai ni setete, ma o faʻaopoopoga faʻaoga faʻatasi ma lenei matafaioi e mafai ona faʻaopoopo i le fuifui pe a manaʻomia. O le matafaioi a le tagata tamo'e o le fa'auma o galuega. E pei ona taʻua, e mafai ona gaosia ni galuega fou mai le sandbox; o lo'o fa'asaoina i se fa'asologa i luga o le fa'aputuga ona fa'atino lea i le tagata tamo'e. O lea ituaiga galuega e ta'ua o Iopu. E iai fo'i le matou ituaiga galuega e ta'ua o le Task - o galuega ia e fa'auigaina e tagata fa'aoga e fa'atino i luga o se fa'asologa (fa'aaoga le cron syntax) po'o le mana'omia. Ina ia faʻalauiloa ma siaki ia galuega, o loʻo i ai sa matou pule galuega faigofie. Ina ia mafai ona avanoa lenei faʻatinoga, e tatau ona e faʻaogaina le matafaioi o le faʻatulagaina; o lenei matafaioi ei ai se setete, o lea e le fuaina, lea, e ui i lea, e le manaʻomia; i le taimi lava e tasi, pei o isi matafaioi uma, e mafai ona i ai se faʻataʻitaʻiga e amata galue pe a faʻafuaseʻi ona musu le matai.

Ogalaau

O le isi matafaioi e ta'ua o le logger. E aoina mai ogalaau mai sui uma o le fuifui ma tuʻuina atu se atinaʻe mo le faʻapipiʻiina ma matamata i latou i luga o le upega tafaʻilagi.

Auaunaga

E taua le taʻua o le faiga e faigofie ai ona fatuina auaunaga. I le faila faʻatulagaina, e mafai ona e faʻamaonia po o fea talosaga e lafo atu i se tagata faʻapipiʻi tusitusi e tamoʻe i le sandbox. I totonu o lenei faʻatonu, e mafai, mo se faʻataʻitaʻiga, faʻatautaia se ituaiga o suʻesuʻega suʻesuʻe ma toe faʻafoʻi le iʻuga.

O loʻo faʻamatalaina le tautua i le faila faʻatulagaina:

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

O le GraphQL API e otometi ona fa'atupuina ma ua avanoa le tautua mo le vala'au:

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

Ole mea lea ole a vala'au ile pule sumlea o le a toe faʻafoʻi mai le iʻuga:

3

Fa'amatalaga Fa'amatalaga ma Fuafuaga

Ina ia malamalama i le faʻaogaina o le faiga ma faʻamatalaga talosaga, matou faʻatinoina le lagolago mo le OpenTracing protocol. E mafai e le faiga ona tuʻuina atu faʻamatalaga i luga o le manaʻoga i meafaigaluega e lagolagoina lenei faʻasalalauga, e pei o le Zipkin, lea e mafai ai ona e malamalama pe faʻapefea ona faʻatinoina le talosaga:

Fausia ma gafatia o Tarantool Data Grid

E masani lava, o le faiga e tuʻuina atu fua faʻatatau i totonu e mafai ona aoina e faʻaaoga ai le Prometheus ma vaʻaia e faʻaaoga ai le Grafana.

Fa'atino

Tarantool Data Grid e mafai ona faʻapipiʻiina mai pusa RPM poʻo se faʻamaumauga, faʻaaoga se aoga mai le tufatufaina poʻo Ansible, o loʻo i ai foi le lagolago mo Kubernetes (Tarantool Kubernetes Operator).

O le talosaga o loʻo faʻatinoina le faʻaogaina o pisinisi (faʻatulagaina, faʻapipiʻi) o loʻo faʻapipiʻiina i totonu o le deployed Tarantool Data Grid cluster i le tulaga o se archive e ala i le UI poʻo le faʻaaogaina o se tusitusiga e ala i le API na matou saunia.

Fa'ata'ita'iga Talosaga

O a tusi talosaga e mafai ona faia e faʻaaoga ai le Tarantool Data Grid? O le mea moni, o le tele o galuega faʻapisinisi e fesoʻotaʻi ma le gaioiga, teuina ma le mauaina o faʻamaumauga. O le mea lea, afai o loʻo i ai au vaitafe tele o faʻamatalaga e manaʻomia ona teuina ma le saogalemu, ona mafai lea e la matou oloa ona faʻaolaina oe i le tele o taimi atinaʻe ma taulaʻi i lau faʻamatalaga pisinisi.

Mo se faʻataʻitaʻiga, matou te mananaʻo e aoina faʻamatalaga e uiga i le maketi o fanua, ina ia i ai i le lumanaʻi, mo se faʻataʻitaʻiga, o le a matou maua faʻamatalaga e uiga i ofo sili. I lenei tulaga, o le a matou faʻamalamalamaina galuega nei:

  1. Robots e aoina faʻamatalaga mai punaoa tatala o le a avea ma a tatou faʻamaumauga. E mafai ona e foia lenei faʻafitauli e faʻaaoga ai fofo saunia poʻo le tusiaina o code i soʻo se gagana.
  2. Le isi, Tarantool Data Grid o le a talia ma faʻasaoina faʻamaumauga. Afai e ese le fa'asologa o fa'amaumauga mai fa'apogai eseese, ona mafai lea ona e tusia le code i le Lua e fa'atino ai le liua i se fa'asologa e tasi. I le laasaga muamua o le faagasologa, o le a mafai foi, mo se faʻataʻitaʻiga, ona faʻamama faʻalua ofo pe faʻaopoopo faʻamatalaga faʻamatalaga e uiga i sui o loʻo galulue i le maketi i totonu o faʻamaumauga.
  3. O lea la ua uma ona i ai sau fofo faʻaleleia i totonu o se fuifui e mafai ona faʻatumu i faʻamaumauga ma fai filifiliga faʻamaumauga. Ona mafai lea ona e faʻatinoina galuega fou, mo se faʻataʻitaʻiga, tusi se auaunaga o le a faia se talosaga mo faʻamaumauga ma tuʻuina atu le ofo sili ona lelei i le aso - o le a manaʻomia ai ni nai laina i le faila faʻapipiʻi ma sina code Lua.

o sosoo ai le a?

O le matou fa'amuamua o le fa'aleleia o le faigofie o le fa'aaogaina o atina'e Tarantool Data Grid. Mo se faʻataʻitaʻiga, o le IDE lea ma le lagolago mo le faʻasalalau ma le faʻapipiʻiina o tagata e taʻavale i totonu o se pusa oneone.

Matou te matua gauai atu foi i mataupu saogalemu. I le taimi nei o loʻo matou faʻataʻitaʻiina e le FSTEC o Rusia e faʻamaonia le maualuga o le saogalemu ma faʻamalieina manaʻoga mo le faʻamaoniaina o oloa faʻapipiʻi faʻaaogaina i faiga faʻamatalaga faʻamatalaga patino ma faiga faʻamatalaga a le malo.

puna: www.habr.com

Faaopoopo i ai se faamatalaga