
I te Mail.ru Group, kei a mātou a Tarantool—he tūmau tono Lua e mahi tahi ana me te pātengi raraunga (he rerekē rānei?). He tere, he rawe hoki, engari he rohe tonu tō te tūmau kotahi. Ehara te tauine poutū i te rongoā whakaora, nō reira kei roto i a Tarantool ngā taputapu mō te tauine whakapae—te kōwae vshard. Mā tēnei ka taea e koe te wehewehe raraunga puta noa i ngā tūmau maha, engari me whakapau kaha ki te whakarite me te whakatinana i te arorau pakihi.
He rongo pai: i kohia e mātou ētahi paina (hei tauira , ) ā, i waihangahia tētahi atu anga hei whakangāwari ake i te otinga mō tēnei raruraru.
— he anga hou mō te whakawhanake i ngā pūnaha tohatoha matatini. Mā tēnei ka taea e koe te arotahi ki te tuhi i ngā arorau pakihi, kaua ki te whakaoti rapanga hanganga. Kei raro nei, ka whakamāramahia e au te mahi a tēnei anga me pēhea te tuhi ratonga tohatoha me tēnei.
He aha rawa te raruraru?
He tarantula tā mātou, he vshard tā mātou - he aha atu anō tāu e hiahia ana?
Tuatahi, e pā ana ki te whai wāhitanga. Ka whirihorahia te whirihoranga vshard mā te whakamahi i ngā ripanga Lua. Kia tika ai te mahi a tētahi pūnaha tohatoha o ngā tukanga Tarantool maha, me rite te whirihoranga puta noa i ngā tukanga katoa. Kāore he tangata e hiahia ana ki te mahi ā-ringa i tēnei. Koia te take e whakamahia ai ngā momo tuhinga, ngā pūnaha Ansible, me ngā pūnaha whakatinanatanga.
Ko te kātereti tonu e whakahaere ana i te whirihoranga vshard, e mahi ana i tēnei i runga i tana whirihoranga tohatoha akeKo te tikanga, he kōnae YAML māmā noa iho tēnei, ā, kei roto i ia tauira Tarantool te tārua o taua kōnae. Ko te whakangawaritanga kei roto i te meka ko te anga tonu e whakahaere ana i tana whirihoranga, ā, e whakarite ana kia ōrite puta noa i ngā tauira katoa.
Tuarua, he take anō tēnei mō te whai wāhitanga. Kāore he pānga o te whirihoranga VShard ki te whakawhanaketanga o te arorau pakihi, ā, ka whakararuraru noa i te mahi a te kaihōtaka. Ina kōrerohia te hoahoa o tētahi kaupapa, ko te nuinga o te wā ka kōrerohia e tātou mō ngā wāhanga takitahi me ā rātou taunekeneke. He wawe rawa te whakaaro ki te whakatū i tētahi taupū puta noa i ngā pokapū raraunga e toru.
I arotakehia e mātou ēnei take i ngā wā katoa, ā, i te mutunga ka whakawhanakehia e mātou he huarahi e māmā ake ai te mahi me tētahi taupānga puta noa i tōna huringa ora katoa: te waihanga, te whakawhanake, te whakamātautau, te CI/CD, me te tiaki.
Ka whakaurua e Cartridge te ariā o ngā tūranga mō ia tukanga Tarantool. Ko ngā tūranga he ariā e āhei ai ngā kaiwhakawhanake ki te arotahi ki te tuhi waehere. Ka taea te whakahaere i ngā tūranga katoa i roto i tētahi kaupapa i runga i te tauira Tarantool kotahi, he rawaka tēnei mō te whakamātautau.
Ngā āhuatanga matua o te Kāritara Tarantool:
- te whakarite rōpū aunoa;
- te whakawhānui ake i te mahi a te taupānga mā te whakamahi i ngā tūranga hou;
- tauira tono mō te whakawhanake me te whakatinanatanga;
- te wehewehe aunoa i hangaia;
- te whakaurunga ki te anga whakamātautau Luatest;
- te whakahaere i ngā rōpū mā te whakamahi i te WebUI me te API;
- te tākai me te whakatinana i ngā taputapu.
Kia ora, World!
Kei te hiahia nui ahau ki te whakaatu i te anga tonu ki a koutou, nō reira ka waiho te kōrero mō te hoahoanga mō muri mai, ka tīmata ki tētahi mea māmā noa iho. Ki te mea kua tāuta kētia a Tarantool, ko te mea anake e toe ana ko te mahi
$ tarantoolctl rocks install cartridge-cli
$ export PATH=$PWD/.rocks/bin/:$PATHMā ēnei whakahau e rua ka tāuta ngā taputapu raina whakahau, ā, ka taea e koe te waihanga i tō taupānga tuatahi mai i tētahi tauira:
$ cartridge create --name myappĀ, koinei tā tātou e whiwhi ai:
myapp/
├── .git/
├── .gitignore
├── app/roles/custom.lua
├── deps.sh
├── init.lua
├── myapp-scm-1.rockspec
├── test
│ ├── helper
│ │ ├── integration.lua
│ │ └── unit.lua
│ ├── helper.lua
│ ├── integration/api_test.lua
│ └── unit/sample_test.lua
└── tmp/
He putunga Git tēnei me te taupānga "Kia ora, Ao!" kua oti te hanga. Me whakamātau tātou ki te whakahaere tonu, i muri i te tāutanga o ngā whakawhirinakitanga (tae atu ki te angamahi tonu):
$ tarantoolctl rocks make
$ ./init.lua --http-port 8080Nō reira, kotahi te pūnga o te tono wehewehe ā muri ake nei e rere ana. Ka taea e te kaiwhakamahi hiahia te whakatuwhera tonu i te atanga tukutuku, te whirihora i tētahi taupū kotahi-pūnga ki te kiore, me te miharo ki ngā hua, engari he wawe rawa ki te koa. Kāore anō te tono kia mahi i tetahi mea whai hua, nō reira ka kōrero ahau mō te whakatinanatanga ā muri ake nei. Kua tae ki te wā ki te tuhi i ētahi waehere.
Te whakawhanaketanga o ngā tono
Whakaarohia, kei te hoahoa tātou i tētahi kaupapa me whiwhi raraunga, me tiaki, ā, me whakaputa pūrongo kotahi i te rā.

Ka tīmata mā te tuhi i tētahi hoahoa, ka whakatakoto i ngā wāhanga e toru ki runga: te kuwaha, te rokiroki, me te kaiwhakarite. Ka haere tonu tā mātou whakapai ake i te hoahoa. Nā te mea kei te whakamahi mātou i te vshard hei rokiroki, ka tāpirihia e mātou te vshard-router me te vshard-storage ki te hoahoa. Kāore te kuwaha, te kaiwhakarite rānei e uru tika ki te rokiroki; koinei te mahi a te pouara.

Kāore anō tēnei hoahoa kia tino whakaata i te mea ka hangaia e tātou i roto i te kaupapa, nā te mea he āhua whakarāpopoto ngā wāhanga. Me kite tonu tātou me pēhea te whakamaoritanga o tēnei ki te Tarantool tūturu—ka whakarōpūhia ā tātou wāhanga mā te tukanga.

Kāore he take o te whakahaere i te vshard-router me te gateway i ngā wā rerekē. He aha ai te whakararuraru i te whakawhiti whatunga koretake mēnā ko te kawenga kē tēnā a te pouara? Me whakahaere rāua i roto i te tukanga kotahi. Arā, ka tīmatahia a gateway me vshard.router.cfg i roto i te tukanga kotahi, ā, me taunekeneke ā-rohe rāua.
I te wāhanga hoahoa, he mea watea te mahi me ngā wāhanga e toru, engari hei kaiwhakawhanake, i a au e tuhi ana i te waehere, kāore au e hiahia ki te whakaaro ki te whakarewa i ngā tauira Tarnatool e toru. Me whakahaere e au ngā whakamātautau me te manatoko kua tika taku tuhi i te kuwaha. Me whakaatu rānei e au tētahi āhuatanga ki ōku hoa mahi. He aha ai te whakararuraru i te whakatinana i ngā tauira e toru? Koinei te whānautanga o te ariā o ngā tūranga. Ko te tūranga he kōwae Lua noa e whakahaerehia ana e Cartridge tōna huringa ora. I roto i tēnei tauira, e whā: te kuwaha, te pouara, te rokiroki, me te kaiwhakarite. I roto i tētahi atu kaupapa, tera pea he maha atu. Ka taea te whakarewa i ngā tūranga katoa i roto i te tukanga kotahi, ā, he rawaka tēnā.

Ina tae ki te whakatinanatanga ki te whakaaturanga, ki te whakaputa rānei, ka tohaina e mātou he huinga tūranga ki ia tukanga Tarantool, i runga i ngā āheinga taputapu:

Te whakahaere topology
Ko ngā mōhiohio e pā ana ki ngā tūranga e whakahaerehia ana me penapena ki tētahi wāhi. Ā, ko taua "wāhi" ko te whirihoranga tohatoha i kōrerotia e au i runga ake nei. Ko te mea nui ko te āhua o te rōpū. E whakaatu ana tēnei whakaahua i ngā rōpū tāruarua e toru e titoa ana e rima ngā tukanga Tarantool:

Kāore mātou e hiahia ki te ngaro i ngā raraunga, nō reira ka ata whakahaere mātou i ngā mōhiohio e pā ana ki ngā tukanga e rere ana. Ka aroturukihia e te kātihi te whirihoranga mā te whakamahi i tētahi hononga e rua-wāhanga. Ina hiahia mātou ki te whakahou i te whirihoranga, ka tirohia tuatahitia e ia kei te wātea ngā tauira katoa, ā, kua rite ki te whakaae ki te whirihoranga hou. Kātahi, ka whakamahia te whirihoranga e te wāhanga tuarua. Mā tēnei ara, ahakoa kāore tetahi tauira e wātea mō te wā poto, kāore he mea kino e puta. Kāore te whirihoranga e whakamahia, ā, ka kite koe i tētahi hapa i mua.
Ka tohua hoki e te wāhanga āhuarangi tētahi tawhā nui: te kaiārahi o ia rōpū tāruarua. Ko te tikanga, koinei te tauira e tuhia ana ki. Ko ētahi atu he pānui-anake, ahakoa he tūponotanga pea. I ētahi wā, kāore ngā kaiwhakawhanake maia e wehi i ngā pakanga, ā, ka taea e rātou te tuhi raraunga ki ngā tāruarua maha i te wā kotahi, engari kei reira ētahi mahi kāore e tika kia mahia kia rua. Mō ēnei, he haki kaiārahi.

Te oranga o ngā tūranga
Kia noho ai ngā tūranga whakarāpopoto i roto i tētahi hoahoa pēnei, me whakahaere e te anga. Heoi anō, ka puta tēnei whakahaere me te kore e tīmata anō i te tukanga Tarantool. E whā ngā karangatanga mō te whakahaere tūranga. Ka karanga aunoa a Cartridge i a rātou i runga i tōna whirihoranga tohatoha, ā, ka whakamahia te whirihoranga ki ngā tūranga motuhake.
function init()
function validate_config()
function apply_config()
function stop()
He mahi tā ia tūranga initKa karangatia kotahi, ina whakahohea te tūranga, ina tīmata anō rānei a Tarantool. He mea watea, hei tauira, te tīmata i te box.space.create, ka taea rānei e te kaiwhakarite te whakarewa i tētahi muka papamuri e mahi ana i ngā wā kua whakaritea.
Kotahi te mahi init Kāore pea tēnei e ranea. Mā te Cartridge ka taea e ngā tūranga te whakamahi i te whirihoranga tohatoha e whakamahia ana e ia hei penapena i te āhuarangi. Ka taea e tātou te whakapuaki i tētahi wāhanga hou i roto i tēnei whirihoranga anō, ā, ka penapena i tētahi wāhanga o te whirihoranga pakihi ki roto. I roto i taku tauira, he kaupapa raraunga, he tautuhinga whakaritenga rānei tēnei mō te tūranga kaiwhakarite.
Ngā karangatanga rōpū validate_config и apply_config me ia huringa ki te whirihoranga tohatoha. Ina whakamahia he whirihoranga me te tukunga-wāhanga-rua, ka manatoko te rōpū kua rite ia tūranga ki te whakaae i te whirihoranga hou, ā, ki te tika, ka ripoata i tētahi hapa ki te kaiwhakamahi. Kia whakaae te katoa he tika te whirihoranga, ka whakahaerehia te tukunga. apply_config.
He tikanga anō hoki tā ngā tūranga stop, e hiahiatia ana hei horoi i te mahi a te tūranga. Ki te mea tātou kāore e hiahiatia ana te kaiwhakarite i runga i tēnei tūmau, ka taea e ia te whakamutu i ngā muka i tīmata ai te whakamahi init.
Ka taea e ngā tūranga te taunekeneke tetahi ki tetahi. Kua taunga tātou ki te tuhi karangatanga mahi i roto i te Lua, engari tera pea kāore te tūranga e hiahiatia ana e tātou i roto i tētahi tukanga kua whakaritea. Hei whakahaere i ngā karangatanga whatunga, ka whakamahia e tātou te kōwae āwhina rpc (karanga tukanga mamao), e hangaia ana i runga i te kōwae netbox paerewa kua hangaia ki roto i te Tarantool. He mea whai hua tēnei mēnā, hei tauira, e hiahia ana tō kuwaha ki te tono tika ki te kaiwhakarite kia mahi tonu i tētahi mahi, kaua e tatari mō ngā haora 24.
Ko tētahi atu mea nui ko te whakarite kia taea te whakahaere i te manawanui hapa. Ka whakamahia e Cartridge te kawa SWIM mō te aroturuki i te hauora. I roto i te poto, ka whakawhitiwhiti kōrero ngā tukanga tetahi ki tetahi mā te UDP—ka tukuna e ia tukanga ngā purongo hou ki ōna hoa tata, ā, ka whakautu atu rātou. Mēnā kāore he whakautu e tae mai, ka tīmata a Tarantool ki te whakapae kei te hē tetahi mea, ā, i muri i tētahi wā, ka karangahia te mate ka tīmata ki te kōrero i ngā purongo ki te hunga katoa e karapoti ana i a ia.

I runga i tēnei kawa, ka whakatinanahia e Cartridge te hurihanga aunoa. Ka aroturukihia e ia tukanga tōna taiao, ā, ki te mutu ohorere te urupare a te kaiārahi, ka taea e te tārua te tango, ā, ka whirihorahia e Cartridge ngā tūranga e rere ana.

Me tūpato ki konei, nā te mea ka taea e ngā hapa maha te arahi ki ngā taupatupatu raraunga i te wā e tāruaruatia ana. Ehara i te mea pai te whakahohe i te hapa aunoa i te koretake. He mea nui kia mārama ki te mea e tupu ana, kia kore ai e pakaru te tāruarua i muri i te whakaoranga o te kaiārahi me te whakahokinga ki tōna tūranga.
Mai i ēnei katoa, te āhua nei he rite ngā mahi ki ngā ratonga moroiti. He rite tonu, engari he rite ki ngā kōwae i roto i ngā tukanga Tarantool. Engari he maha ngā rerekētanga matua. Tuatahi, me noho ngā mahi kaupapa katoa ki roto i te pūtake waehere kotahi. Ā, me whakarewahia ngā tukanga Tarantool katoa mai i te pūtake waehere kotahi hei karo i ngā ohorere pēnei i te wā e ngana ana tātou ki te tīmata i tētahi kaiwhakarite, ā, kāore noa iho. Me karo hoki i ngā rerekētanga putanga waehere, nā te mea he tino uaua ki te matapae me te whakatika i ngā whanonga pūnaha i roto i tēnei āhuatanga.
Kāore i rite ki a Docker, kāore e taea te tango noa i tētahi "ahua" o tētahi tūranga, ka whakawhiti ki tētahi atu mīhini, ka whakahaere i reira. Kāore ā mātou tūranga i te motuhake pērā i ngā ipu Docker. Kāore hoki e taea te whakahaere i ngā tūranga e rua rite tonu i te wā kotahi. Kei te noho tētahi tūranga, kāore rānei; he takitahi noa iho. Tuatoru, me rite tonu ngā tūranga i roto i te rōpū tāruarua katoa, nā te mea ki te kore, he mea whakakatakata—he rite tonu ngā raraunga, engari he rerekē te whirihoranga.
Ngā taputapu whakatinanatanga
I oati ahau ki te whakaatu ki a koe me pēhea te āwhina a Cartridge ki te whakatinana i ngā tono. Hei whakangawari ake i te oranga mō ētahi atu, ka tākaihia e te anga ngā mōkihi RPM:
$ cartridge pack rpm myapp -- упакует для нас ./myapp-0.1.0-1.rpm
$ sudo yum install ./myapp-0.1.0-1.rpmKei roto i te mōkihi kua tāutahia ngā mea katoa e hiahiatia ana: te taupānga me ngā whakawhirinakitanga Lua kua tāutahia. Ka tāutahia hoki a Tarantool ki te tūmau hei whakawhirinakitanga mōkihi RPM, ā, kua rite tā mātou ratonga ki te whakahaere. Ka mahia tēnei mā te pūnaha pūnaha, engari tuatahi, me whakarite he whirihoranga. I te iti rawa, tohua te URI mō ia tukanga. E toru ngā mea e ranea ana mō tēnei tauira.
$ sudo tee /etc/tarantool/conf.d/demo.yml <<CONFIG
myapp.router: {"advertise_uri": "localhost:3301", "http_port": 8080}
myapp.storage_A: {"advertise_uri": "localhost:3302", "http_enabled": False}
myapp.storage_B: {"advertise_uri": "localhost:3303", "http_enabled": False}
CONFIGHe āhuatanga whakamere tēnei. Engari ko te tauranga kawa rua anake te mea e tohua ana, ka tohua e mātou te wāhitau tūmatanui katoa o te tukanga, tae atu ki te ingoa manaaki. He mea tika tēnei kia mōhio ai ngā pona taupū ki te hono atu tetahi ki tetahi. He whakaaro kino te whakamahi i te 0.0.0.0 hei advertise_uri; me waiho ko te wāhitau IP tūmatanui, kaua ko te wāhitau here o te pūtukatuka. Ki te kore, kāore he mea e mahi, nō reira kāore a Cartridge e tuku i a koe ki te tīmata i tētahi pona me te advertise_uri hē.
Nā te mea kua rite te whirihoranga, ka taea e koe te tīmata i ngā tukanga. Nā te mea kāore e taea e te waeine pūnaha noa te tīmata i te neke atu i te kotahi tukanga, ka tāutahia e ngā tono i runga i te Cartridge ngā waeine kua whakapūmautia, e mahi ana pēnei:
$ sudo systemctl start myapp@router
$ sudo systemctl start myapp@storage_A
$ sudo systemctl start myapp@storage_BI roto i te whirihoranga, i tohua e mātou te tauranga HTTP e mahi ai a Cartridge ki te atanga tukutuku—8080. Me haere tātou ki reira, me titiro:

Ahakoa kei te oma ngā tukanga, ka kite tātou kāore anō kia whirihorahia. Kāore anō te kātereti kia mōhio ko wai hei tārua me wai, ā, kāore e taea e ia te whakatau takitahi, nō reira kei te tatari ia mō ā tātou mahi. Kāore he nui ā tātou whiringa: ka tīmata te rōpū hou ki te whirihora i te pūnga tuatahi. Kātahi ka tāpirihia e tātou ētahi atu ki te rōpū, ka tohaina he tūranga ki a rātou, ā, ka taea te kī kua oti pai te whakatinanatanga.
Me ringihia he karāhe o tā tātou inu tino pai, kia okioki ai tātou i muri i te wiki mahi roa. Kua rite te taupānga ki te whakamahi.

Ngā putanga
Nā, he aha te tino kaupapa? Whakamātauria, whakamahia, waiho urupare, ka whakatuwhera i tētahi tīkiti GitHub.
tohutoro
[1]
[2] [3] [4] [5] [6]Source: will.com
