Tata ki nga tono pakihi angitu katoa ka uru ki tetahi waahanga e hiahiatia ana te whakatauine whakapae. I te nuinga o nga wa, ka taea e koe te timata i tetahi tauira hou me te whakaiti i te toharite kawenga. Engari he iti ano nga keehi iti e tika ana kia mohio nga momo pona tetahi ki tetahi me te tohatoha i nga kawenga mahi.
Ua tupu te reira erlang, i whiriwhiria e matou mo tana wetereo pai me te panui huri noa, he akomanga tuatahi
Ko nga karere e whakawhiti ana i waenga i nga tukanga i runga i nga waahanga rereke, i waenga i nga hononga me nga kaitirotiro he maamaa [...]
I roto i te mahi, he iti ake te uaua o nga mea. Kua tohaina erlang I whakawhanakehia i te wa e kiia ana ko te "putea" he pouaka rino nui hei kawe, a ko te "docker" he kupu taurite mo te tangata takutai moana. IN IP4 he maha nga wahitau kaore i whakamahia, ko te nuinga o nga wa ka pakaru te whatunga na nga kiore e ngaungau ana i te taura, ka inehia te wa roa o te punaha whakaputa i roto i nga tekau tau.
Inaianei kei te kaha taatau katoa ki a tatou ano, kikii, ka tohatohahia erlang i roto i te taiao ka tukuna nga wahitau IP hihiri i te matapōkeretia, ka puta mai nga pona ka ngaro i runga i te hiahia o te rekereke maui o te kaihōtaka. Ki te karo i te paihere o te waehere boilerplate i ia kaupapa e whakahaere ana i te tohatoha erlangka hiahiatia he awhina ki te whawhai i te taiao kino.
parau: E mohio ana ahau he aha libcluster
whakaritenga
Ko te mea i hiahiatia e au ake ko te whare pukapuka hei kawe i te whakahaerenga o te roopu me nga taonga e whai ake nei:
- mahi marama me te rarangi tohu-maatau o nga pona me nga kitenga hihiri ma nga ratonga erlang;
- hokinga-katoa i runga i nga huringa topology katoa (node in, node out, network instability, splits);
- atanga maramara mo te whakarewa i te roopu me nga ingoa roa me nga ingoa poto, pera me
:nonode@nohost
; - tautoko docker i waho o te pouaka, me te kore e hiahia ki te tuhi i te waehere hanganga.
Ko te tikanga o muri i muri i taku whakamatau i te tono i roto i te rohe :nonode@nohost
, ranei i roto i te taiao toha awhiowhio whakamahi test_cluster_task
docker-compose up --scale my_app=3
ka kite me pehea te whakahaere i nga wa e toru i te docker kaore he huringa waehere. Kei te pirangi ano ahau ki nga tono whakawhirinaki penei mnesia
- ka huri te topology, ka hanga ano te tautau i muri i nga tirohanga mo te painga kaore he whana taapiri mai i te tono.
Kiko kare i whakaarohia hei whare pukapuka e taea ai nga mea katoa mai i te tautoko tautau ki te mahi kawhe. Ehara i te matā hiriwa e whai ana ki te kapi i nga keehi katoa ka taea, ka oti ranei i te maatauranga i runga i te tikanga o nga tohunga whakaaro CS haumi i tenei wahanga. Ko te tikanga o tenei whare pukapuka ki te whakatutuki i tetahi kaupapa tino marama, engari ki te mahi tika i ana mahi kaore i te tino nui. Ko tenei whainga kia tino marama i waenga i te taiao whakawhanaketanga a-rohe me tetahi taiao rapa toha ki tonu i nga ipu kino.
Te huarahi whiriwhiri
Kiko e tika ana kia whakahaeretia hei tono, ahakoa ka taea e nga kaiwhakamahi matatau te mahi me te huinga huinga me te tiaki a-ringa ma te whakahaere tika Cloister.Manager
i te rakau kaitirotiro o te tono whainga.
Ina rere hei tono, ka whakawhirinaki te whare pukapuka config
, ka tangohia e ia nga uara matua e whai ake nei:
config :cloister,
otp_app: :my_app,
sentry: :"cloister.local", # or ~w|n1@foo n2@bar|a
consensus: 3, # number of nodes to consider
# the cluster is up
listener: MyApp.Listener # listener to be called when
# the ring has changed
Ko te tikanga o nga tawhā i runga ake nei he kupu kupu e whai ake nei: Kiko whakamahia mo te tono OTP :my_app
, whakamahi kitea ratonga erlang ki te hono i nga pona, e toru i te iti rawa, me MyApp.Listener
kōwae (whakatinana @behaviour Cloister.Listener
Ki tenei whirihoranga, te tono Kiko ka waiho MyApp.Listener.on_state_change/2
%Cloister.Monitor{status: :up}
, ko te tikanga: "Kia ora, kua huihui te tautau."
I te nuinga o te waa, ko te whakaurunga consensus: 3
he tino pai na te mea ahakoa e tumanako ana tatou kia maha atu nga pona e hono ana, ka hoki te waea status: :rehashing
→ status: :up
i runga i tetahi pona katahi ano ka taapirihia, ka tangohia ranei.
A, no te rere i roto i te aratau whanaketanga, whakaturia noa consensus: 1
и Kiko ka harikoa koa ki te tatari mo te huihuinga tautau :nonode@nohost
ranei :node@host
ranei :[email protected]
- i runga i te ahua o te whirihora o te node (:none | :shortnames | :longnames
).
Whakahaere Tono Tohaina
Ko nga tono toha karekau i roto i te korehau ko te nuinga o te waa ka uru ki nga whakawhirinakitanga toha, penei mnesia
. He mea ngawari ki a maatau te whakahaere i a raatau whirihora ano mai i te waea whakahoki ano on_state_change/2
. Hei tauira, koinei te whakamaarama taipitopito mo te whirihora ano mnesia
i runga i te rere ki roto
Ko te painga nui o te whakamahi Kiko ko te mahi i nga mahi katoa e tika ana hei hanga ano i te tautau i muri i te whakarereketanga o te topology i raro i te arai. Ka rere noa te tono i roto i te taiao kua oti te tohatoha, me nga pona katoa e hono ana, ahakoa e mohio ana tatou ki nga wahitau IP, na reira ko nga ingoa o nga pona i mua atu, kua tohatohahia / whakarereketia ranei. Kaore rawa e hiahiatia he tautuhinga whirihoranga docker motuhake, a, mai i te tirohanga a te kaiwhakawhanake tono, kaore he rereketanga i waenga i te rere i roto i te taiao tohatoha, i te rohe ranei. :nonode@nohost
. Ka taea e koe te panui atu mo tenei i roto i
Ahakoa ka taea te whakahaere maatanga o nga huringa topology ma te whakatinanatanga taketake MyApp.Listener
, ka noho tonu nga keehi o te taha kei reira enei herenga whare pukapuka me te huarahi whirihoranga whirihora hei kohatu kokonga mo te huarahi whakatinana. He pai, tangohia noa nga korero o runga libcluster
, he pai ake te mahi, ka mau ranei koe i te kahui taumata-iti. Ko te whainga o tenei whare pukapuka waehere ehara i te kii i nga ahuatanga katoa ka taea, engari ko te whakamahi i nga ahuatanga tino noa kaore he mamae me nga kape-piri uaua.
Tuhipoka: i roto i tenei wahi i roto i te taketake i reira ko te kīanga "Ka hari clustering!", Na Yandex, i whakamaoritia e ahau (kia kaua e piki ake i nga papakupu), i tukuna mai ki ahau te whiringa "Kia harikoa!". Ko te whakamaoritanga pai ake pea, ina koa i runga i te maaramatanga o nga ahuatanga geopolitical o naianei, kaore e taea te whakaaro.
Source: will.com