Te hoahoanga me te kaha o te Matiti Raraunga Tarantool

Te hoahoanga me te kaha o te Matiti Raraunga Tarantool

I te tau 2017, i toa matou i tetahi whakataetae ki te whakawhanake i te kaupapa hokohoko o te pakihi haumi a Alfa-Bank me te timata ki te mahi (i HighLoad++ 2018 me te ripoata mo te kaupapa matua o te pakihi haumi. korero Ko Vladimir Drynkin, te tumuaki o te kaupapa hokohoko o te pakihi haumi o Alfa Bank). Ko te tikanga ko tenei punaha ka whakahiato i nga raraunga tauwhitinga mai i nga punaa rereke i roto i nga momo whakatakotoranga, te kawe mai i nga raraunga ki roto i te ahua kotahi, te penapena me te uru atu ki reira.

I te wa o te tukanga whanaketanga, i tipu te punaha me te whai mahi, a, i etahi wa ka mohio matou kei te whakakoi i tetahi mea nui atu i te raupaparorohiko tono i hangaia hei whakaoti i te whānuitanga o nga mahi: i angitu matou he punaha mo te hanga tono toha me te pupuri tonu. Ko te wheako i riro mai i a maatau te turanga o te hua hou - Matiti Raraunga Tarantool (TDG).

Kei te hiahia ahau ki te korero mo te hoahoanga TDG me nga otinga i tae mai ki a matou i te wa o te whanaketanga, whakamohio ki a koe ki nga mahi matua me te whakaatu me pehea e taea ai e a maatau hua te turanga mo te hanga otinga oti.

I runga i te hoahoanga, ka wehea e matou te punaha kia wehea tūranga, kei ia tangata te kawenga mo te whakaoti i etahi momo rapanga. Ko te tauira tono whakahaere kotahi ka whakatinana i tetahi, neke atu ranei nga momo mahi. He maha nga mahi o te momo rite i roto i te tautau:

Te hoahoanga me te kaha o te Matiti Raraunga Tarantool

Tūhono

Ko te Kaihono te kawenga mo te whakawhitiwhiti korero me te ao o waho; ko tana mahi ko te whakaae ki te tono, ka poroporoaki, a, ki te angitu tenei, ka tukuna nga raraunga hei tukatuka ki te tukatuka whakauru. Ka tautoko matou i nga whakatakotoranga HTTP, SOAP, Kafka, FIX. Ko te hoahoanga ka taea e koe te taapiri i te tautoko mo nga whakatakotoranga hou, me te tautoko mo te IBM MQ ka tata mai. Ki te rahua te poroporoaki i te tono, ka whakahoki he hapa te hononga; ki te kore, ka whakautuhia kua tutuki pai te tono, ahakoa i puta he hapa i te waa o te tukatuka. I tino mahia tenei kia pai ai te mahi me nga punaha kaore e mohio ki te whakahoki ano i nga tono - engari, me mahi tonu. Kia kore ai e ngaro nga raraunga, ka whakamahia he rarangi whakatika: ka uru tuatahi te ahanoa ki roto, a, i muri noa i te tango i te tukatuka angitu. Ka taea e te kaiwhakahaere te whiwhi matohi mo nga taonga e toe ana ki te rarangi whakatika, a i muri i te whakakore i te hapa rorohiko, i te rahunga taputapu ranei, ngana ano.

Tukatuka whakauru

Ka whakarōpūhia e te pūtukatuka Tāuru nga raraunga kua riro mai i runga i nga ahuatanga o te ahua me te karanga i nga tukatuka tika. Ko nga Kaihautu he waehere Lua e rere ana i roto i te pouaka kirikiri, na reira kaore e pa ki te mahi o te punaha. I tenei waahanga, ka taea te whakaheke i nga raraunga ki te ahua e hiahiatia ana, a, mehemea e tika ana, ka taea te whakarewahia he maha o nga mahi ka taea te whakatinana i te arorau e tika ana. Hei tauira, i roto i te hua MDM (Master Data Management) i hangaia i runga i te Matiti Raraunga Tarantool, i te wa e whakauru ana he kaiwhakamahi hou, kia kore ai e whakaroa te tukatuka o te tono, ka whakarewahia e matou te hanga o te rekoata koura hei mahi motuhake. Ka tautokohia e te pouaka kirikiri nga tono mo te panui, te whakarereke me te taapiri i nga raraunga, ka taea e koe te mahi i etahi mahi i runga i nga mahi katoa o te momo rokiroki me te whakahiato o te hua (mahere/whakaiti).

Ka taea te whakaahua i nga kaihautu i roto i nga konae:

sum.lua

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

Na ka korerohia i roto i te whirihoranga:

functions:
  sum: { __file: sum.lua }

He aha a Lua? He reo tino ngawari a Lua. I runga i to maatau wheako, i nga haora e rua i muri i to mohiotanga, ka timata nga tangata ki te tuhi i te waehere hei whakaoti i to raatau raruraru. A ehara enei i nga kaihanga ngaio anake, engari, hei tauira, nga kaitätari. I tua atu, he mihi ki te jit compiler, he tere te rere a Lua.

Storage

Rokiroki rokiroki raraunga tohe. I mua i te tiaki, ka whakamanahia te raraunga ki te aronuinga raraunga. Hei whakaahua i te ara iahiko ka whakamahia e matou he whakatakotoranga roa Apache Avro. He tauira:

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

I runga i tenei whakaahuatanga, ka hangaia aunoatia te DDL (Reo Whakamarama Raraunga) mo te Tarantula DBMS me Tauira kaupapa mo te uru raraunga.

Kei te tautokohia te tukuruatanga raraunga tukutahi (he mahere ki te taapiri i tetahi tukutahi).

Tukatuka putanga

I etahi wa e tika ana kia whakamohio atu ki nga kaihoko o waho mo te taenga mai o nga raraunga hou; mo tenei kaupapa, kei reira te mahi Tukatuka Huaputa. I muri i te tiaki i nga raraunga, ka taea te tuku ki te kaihautu e tika ana (hei tauira, ki te kawe mai ki te ahua e hiahiatia ana e te kaihoko) - ka tukuna ki te hono mo te tuku. Ka whakamahia ano he rarangi whakatika i konei: ki te kore tetahi i whakaae ki te ahanoa, ka taea e te kaiwhakahaere te ngana ano i muri mai.

Tauine

Ko te tūhonohono, te pūtukatuka tāuru, me ngā tūnga pūtukatuka whakaputanga he kore whenua, ka taea e mātou te āwhata whakapae i te pūnaha mā te tāpiri noa i ngā tauira tono hou me te momo tūnga e hiahiatia ana. Ka whakamahia te rokiroki mo te whakatauine whakapae huarahi ki te whakarite i te roopu ma te whakamahi i nga peere mariko. Whai muri i te taapiri i tetahi tūmau hou, ka nekehia etahi o nga peere mai i nga tūmau tawhito ki te tūmau hou kei muri; ka puta marama tenei ki nga kaiwhakamahi, kaore e pa ki te mahi o te punaha katoa.

Nga Taonga Raraunga

He nui rawa nga taonga me etahi atu taonga kei roto. Ka whakarite matou i te ngota o te taapiri me te whakahou i nga raraunga ma te penapena i tetahi ahanoa me nga whakawhirinakitanga katoa ki te peere mariko kotahi. Ma tenei ka aukati i te ahanoa kia "horapa" puta noa i te maha o nga tūmau tinana.

Kei te tautokohia te whakaputanga: ka hangaia e ia whakahōutanga o te ahanoa he putanga hou, a ka taea e taatau te tango i te waa ka kite i te ahua o te ao i tera wa. Mo nga raraunga karekau he hitori roa, ka taea e tatou te whakawhāiti i te maha o nga putanga, ka penapena ranei kia kotahi anake - ko te mea hou - ara, ko te whakakore i te whakaputanga mo tetahi momo. Ka taea hoki te whakawhāiti i te hitori ma te wa: hei tauira, mukua nga mea katoa o tetahi momo pakeke ake i te 1 tau. Kei te tautokohia te whakapuranga: ka taea e tatou te tango i nga taonga tawhito ake i te waa kua tohua, ka waatea te waahi o te tautau.

mahi

I roto i nga ahuatanga whakamere, he mea tika kia mohiohia te kaha ki te whakarewa i nga mahi i runga i te waarangi, i runga i te tono a te kaiwhakamahi, i te kaupapa mai i te pouaka kirikiri ranei:

Te hoahoanga me te kaha o te Matiti Raraunga Tarantool

I konei ka kite tatou i tetahi atu mahi - kaiwhaiwhai. He koretake tenei mahi, a ka taea te taapiri i etahi atu tono me tenei tuunga ki te tautau ina hiahiatia. Ko te kawenga a te kaiwhai ko te whakaoti i nga mahi. Ka rite ki te korero, ka taea te whakaputa i nga mahi hou mai i te pouaka kirikiri; ka tiakina i roto i te rarangi i runga i te rokiroki, ka mahia ki te kaiwhai. Ko tenei momo mahi ka kiia ko Hopa. He momo mahi ano ta matou e kiia nei ko Tūmahi - he mahi kua tautuhia e te kaiwhakamahi e whakahaere ana i runga i te waarangi (ma te whakamahi cron syntax) i runga i te tono. Hei whakarewa me te whai i nga mahi penei, kei a matou he kaiwhakahaere mahi watea. Kia watea ai tenei taumahinga, me whakaahei koe i te mahi kaihōtaka; he ahua to tenei mahi, no reira kaore i te tauine, engari, kaore e hiahiatia; i te wa ano, pera i era atu mahi katoa, ka taea he tauira ka timata te mahi mena ka kore te rangatira e whakaae.

Parakipa

Ko tetahi atu mahi ka kiia ko te logger. Ka kohia e ia nga rakau mai i nga mema katoa o te roopu me te whakarato i tetahi atanga mo te tuku me te tiro i a raatau ma te atanga tukutuku.

Ratonga

He mea tika kia whakahuahia he maamaa te punaha ki te hanga ratonga. I roto i te konae whirihoranga, ka taea e koe te tohu ko wai nga tono ka tukuna ki tetahi kaihautu tuhi-kaiwhakamahi e rere ana i te pouaka kirikiri. I roto i tenei kaihautu, ka taea e koe, hei tauira, te whakahaere i etahi momo patai tātari me te whakahoki i te hua.

Kei te whakaahuahia te ratonga i roto i te konae whirihoranga:

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

Ko te GraphQL API ka hangaia aunoa, ka waatea te ratonga mo te waea:

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

Ka karanga tenei i te kaihautu sumka hoki mai te hua:

3

Te Whakatairanga Uiui me nga Inenga

Kia mohio ai matou ki te mahi o te punaha me nga tono mo te whakatakoto korero, i whakatinanahia e matou te tautoko mo te kawa OpenTracing. Ka taea e te punaha te tuku korero i runga i te tono ki nga taputapu e tautoko ana i tenei kawa, penei i a Zipkin, e mohio ai koe ki te whakahaerenga o te tono:

Te hoahoanga me te kaha o te Matiti Raraunga Tarantool

Ko te tikanga, ka whakaratohia e te punaha nga inenga o roto ka taea te kohi ma te whakamahi i te Prometheus me te whakaata ma te whakamahi i te Grafana.

Hoatuhia

Ka taea te whakamahi i te Matiti Raraunga Tarantool mai i nga kohinga RPM, i tetahi puranga ranei, ma te whakamahi i tetahi taputapu mai i te tohatoha, i te Ansible ranei, he tautoko hoki mo Kubernetes (Tarantool Kubernetes Kaiwhakahaere).

Ko te tono e whakatinana ana i te arorau pakihi (whiriwhiringa, kaikawe) ka utaina ki roto i te kohinga Matiti Raraunga Tarantool kua tohatohahia i roto i te ahua o te puranga ma te UI, te whakamahi ranei i te tuhinga ma te API i whakaratohia e matou.

Tauira Tono

He aha nga tono ka taea te hanga ma te Matiti Raraunga Tarantool? Ko te tikanga, ko te nuinga o nga mahi pakihi e pa ana ki te tukatuka, te rokiroki me te uru atu ki te rerenga raraunga. Na reira, ki te whai koe i nga awa nui o nga raraunga e tika ana kia tiakina me te uru atu, katahi ka taea e taatau hua te whakaora i a koe i te wa whanaketanga me te aro ki to arorau pakihi.

Hei tauira, e hiahia ana matou ki te kohikohi i nga korero mo te maakete hoko whare, kia whai ake nei, hei tauira, ka whai korero mo nga tuku pai rawa atu. I tenei keehi, ka tohuhia e maatau nga mahi e whai ake nei:

  1. Ko nga robots e kohikohi korero ana mai i nga puna tuwhera ka waiho hei puna raraunga. Ka taea e koe te whakaoti i tenei raru ma te whakamahi i nga otinga kua oti te hanga, te tuhi waehere ranei ki tetahi reo.
  2. I muri mai, ka whakaae a Tarantool Data Grid ka tiakina nga raraunga. Mena he rereke te whakatakotoranga raraunga mai i nga punaa rereke, katahi ka taea e koe te tuhi i te waehere ki Lua hei mahi i te hurihanga ki te whakatakotoranga kotahi. I te wa o mua i te tukatuka, ka taea ano e koe, hei tauira, ki te tarai i nga tuku taarua, ki te whakahou ranei i nga korero mo nga kaihoko e mahi ana i te maakete i roto i te paataka raraunga.
  3. Inaianei kei a koe he otinga tauineine i roto i te tautau ka taea te whakakii ki nga raraunga me te kowhiringa raraunga. Na ka taea e koe te whakatinana i nga mahi hou, hei tauira, tuhia he ratonga ka tono tono mo nga raraunga me te tuku i te utu tino pai mo ia ra - ka hiahiatia etahi rarangi i roto i te konae whirihoranga me tetahi waehere Lua iti.

He aha te i muri?

Ko ta matou kaupapa matua ko te whakapai ake i te ngawari o te whakawhanaketanga ki te whakamahi Matiti Raraunga Tarantool. Hei tauira, he IDE tenei me te tautoko mo nga kaikawe korero me te patuiro i roto i te pouaka kirikiri.

Ka aro nui ano matou ki nga take haumaru. I tenei wa kei te haere matou i te tiwhikete a FSTEC o Russia ki te whakaū i te taumata teitei o te haumarutanga me te whakatutuki i nga whakaritenga mo te tiwhikete o nga hua rorohiko e whakamahia ana i roto i nga punaha korero raraunga whaiaro me nga punaha korero a te kawanatanga.

Source: will.com

Tāpiri i te kōrero