Kusan duk aikace-aikacen kasuwanci mai nasara ba dade ko ba dade yana shiga wani lokaci inda ake buƙatar sikeli a kwance. A yawancin lokuta, zaku iya fara sabon misali kawai kuma ku rage matsakaicin nauyi. Amma akwai kuma ƙananan ƙananan lokuta inda muke buƙatar tabbatar da cewa nodes daban-daban sun san juna kuma a hankali rarraba nauyin aiki.
Ya zama mai sa'a kuskure, wanda muka zaba don jin dadi da jin dadi a kusa da shi, yana da matakin farko
Saƙon da ke wucewa tsakanin matakai akan nodes daban-daban, haka kuma tsakanin hanyoyin haɗi da masu saka idanu, a bayyane yake […]
A aikace, komai yana da ɗan rikitarwa. An rarraba kuskure an ƙirƙira shi lokacin da "kwantena" na nufin babban akwatin ƙarfe don jigilar kaya, kuma "docker" ya kasance kawai ma'ana ga dogon teku. IN IP4 akwai adiresoshin da ba a cika su da yawa ba, hutun hanyar sadarwa yawanci yakan faru ne ta hanyar berayen da ke taunawa ta hanyar kebul, kuma an auna matsakaicin lokacin tsarin samarwa cikin shekaru da yawa.
Yanzu dukkanmu mun wadatu sosai, an tattara mu, kuma mun rarraba kuskure a cikin yanayin da aka ba da adiresoshin IP masu tsauri akan ka'idar babban bazuwar, kuma nodes na iya bayyana da ɓacewa a cikin son diddigin hagu na mai tsarawa. Don guje wa tarin lambar tukunyar jirgi a cikin kowane aikin da ke gudana da rarrabawa kuskure, don yaƙar yanayi mara kyau, ana buƙatar taimako.
Примечание: Ina sane da cewa akwai libcluster
bukatun
Abin da ni kaina nake buƙata shi ne ɗakin karatu wanda zai ɗauki nauyin sarrafa tarin kuma yana da kaddarorin masu zuwa:
- aiki na gaskiya tare da duka jerin ƙididdiga masu ƙarfi na nodes da bincike mai ƙarfi ta hanyar sabis kuskure;
- cikakken aikin sake dawowa don kowane canjin topology (kumburi a can, kumburi a nan, rashin zaman lafiyar cibiyar sadarwa, rarrabuwa);
- m dubawa don ƙaddamar da gungu mai tsawo da gajerun sunaye, kamar tare da
:nonode@nohost
; - Docker yana goyan bayan akwatin, ba tare da rubuta lambar kayan aikin ba.
Na karshen yana nufin cewa bayan na gwada aikace-aikacen a cikin gida :nonode@nohost
, ko a cikin yanayin da aka rarraba ta wucin gadi ta amfani da shi test_cluster_task
docker-compose up --scale my_app=3
kuma duba yadda yake aiwatar da lokuta uku a cikin docker ba tare da canza lambar ba. Ina kuma son aikace-aikace masu dogara kamar mnesia
- lokacin da topology ya canza, a bayan al'amuran suna sake gina gungu kai tsaye ba tare da ƙarin bugun daga aikace-aikacen ba.
Cloister ba a nufin ya zama ɗakin karatu wanda zai iya yin komai daga tallafawa tari zuwa yin kofi. Ba harsashi na azurfa ba ne wanda ke da nufin rufe duk wani lamari mai yuwuwa, ko kuma zama cikakkiyar mafita ta ilimi ta ma'anar cewa masu ilimin tauhidi daga CS sanya a cikin wannan lokaci. An ƙera wannan ɗakin karatu don yin aiki bayyanannen maƙasudi, amma yin aikin da bai cika girma sosai ba. Wannan burin zai kasance don samar da cikakkiyar gaskiya tsakanin yanayin ci gaban gida da kuma yanayin da aka rarraba da ke cike da kwantena masu rikici.
Hanyar da aka zaɓa
Cloister ana nufin gudanar da shi azaman aikace-aikace, kodayake masu amfani da ci gaba na iya aiki tare da haɗawa da kiyaye tarin da hannu ta hanyar gudu kai tsaye. Cloister.Manager
a cikin bishiyar mai kula da aikace-aikacen manufa.
Lokacin aiki azaman aikace-aikace, ɗakin karatu ya dogara da config
, wanda daga ciki yake karanta mahimman dabi'u masu zuwa:
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
Ma'aunin da ke sama yana nufin a zahiri kamar haka: Cloister amfani da aikace-aikacen OTP :my_app
, amfani gano sabis erlang don haɗa nodes, aƙalla uku, kuma MyApp.Listener
module (aiki @behaviour Cloister.Listener
Tare da wannan tsari, aikace-aikacen Cloister zai zama MyApp.Listener.on_state_change/2
%Cloister.Monitor{status: :up}
, wanda ke nufin: “Sannu, gungu ya taru.”
A mafi yawan lokuta, shigarwa consensus: 3
yana da kyau saboda ko da muna tsammanin ƙarin nodes don haɗawa, sake kiran zai shiga status: :rehashing
→ status: :up
akan kowane sabon ƙara ko cire kumburi.
Lokacin farawa a yanayin ci gaba, kawai kuna buƙatar saita consensus: 1
и Cloister cikin farin ciki zai tsallake jiran taron gungu idan ya gani :nonode@nohost
, ko :node@host
, ko :[email protected]
- ya danganta da yadda aka saita kumburin (:none | :shortnames | :longnames
).
Gudanar da Aikace-aikacen Rarraba
Aikace-aikacen da aka rarraba ba a cikin sarari yawanci sun haɗa da abin dogaro da aka rarraba, kamar mnesia
. Yana da sauƙi a gare mu mu kula da sake fasalin su daga dawowar kira iri ɗaya on_state_change/2
. Anan, alal misali, shine cikakken bayanin yadda ake sake saitawa mnesia
kan tashi a ciki
Babban amfani da amfani Cloister shine yana aiwatar da duk ayyukan da suka wajaba don sake gina gungu bayan canjin yanayi a karkashin kaho. Aikace-aikacen yana gudana kawai a cikin yanayin da aka riga aka shirya, tare da haɗin duk nodes, ko da mun san adiresoshin IP kuma saboda haka kullin sunayen a gaba, ko an sanya su / canza su da ƙarfi. Wannan yana buƙatar kwata-kwata babu saitunan saitin docker na musamman kuma daga mahangar mai haɓaka aikace-aikacen, babu bambanci tsakanin gudana a cikin muhallin da aka rarraba ko gudana a cikin gida. :nonode@nohost
. Kuna iya karanta ƙarin game da wannan a cikin
Ko da yake hadaddun kulawa na sauye-sauyen yanayi yana yiwuwa ta hanyar aiwatar da al'ada MyApp.Listener
, ƙila a koyaushe ana samun ɓangarorin gefen inda waɗannan iyakoki na ɗakin karatu da tsattsauran ra'ayi ke tabbatar da zama ginshiƙan aiwatarwa. Ba laifi, kawai ɗauki abin da ke sama libcluster
, wanda ya fi maƙasudin gabaɗaya, ko ma kula da gungu mara nauyi da kanka. Manufar wannan ɗakin karatu na lambar ba shine ya rufe kowane yanayi mai yuwuwa ba, amma don amfani da yanayin da aka fi sani ba tare da jin zafi mara buƙata ba da kwafin-manna mai wahala.
Note: A wannan lokacin a cikin asalin akwai kalmar "Tarin Farin Ciki!", kuma Yandex, wanda na fassara (ba lallai ne in shiga cikin ƙamus da kaina ba), ya ba ni zaɓi "Tari mai farin ciki!" Wataƙila ba zai yiwu a yi tunanin fassara mafi inganci ba, musamman idan aka yi la’akari da yanayin yanayin siyasa na yanzu.
source: www.habr.com