Cloister → pulega faigofie OTP fuifui

Toeitiiti lava o talosaga fa'apisinisi manuia uma e vave pe mulimuli ane e ulufale i se vaega e mana'omia ai le fa'alava fa'alava. I le tele o tulaga, e mafai ona e amataina se faʻataʻitaʻiga fou ma faʻaititia le averesi o uta. Ae o loʻo i ai foʻi ni mataupu faʻatauvaʻa e manaʻomia ona tatou mautinoa o loʻo iloa e nodes eseese e uiga i le tasi ma le isi ma tufatufaina ma le faʻaeteete le mamafa o galuega.

Cloister → pulega faigofie OTP fuifui

Na matua laki lava lena erlang, lea na matou filifilia mo lana syntax manaia ma le hype o loʻo siomia ai, ei ai se vasega muamua lagolago mo faiga tufatufaina. I le teori, e foliga mai e matua leai se aoga:

O feʻau e pasia i le va o faʻagasologa i luga o nodes eseese, faʻapea foʻi ma le va o fesoʻotaʻiga ma mataʻituina, e manino [...]

I le faʻatinoga, o mea uma e fai si lavelave teisi. Fa'asoa erlang na fausia ina ua faauigaina le "container" o se pusa u'amea tele mo felauaiga, ma o le "docker" o se uiga tutusa mo le longshoreman. IN IP4 sa i ai le tele o tuatusi e le'i nofoia, o feso'otaiga vavave e masani lava ona mafua mai i isumu e lamu i le uaea, ma o le averesi o le taimi o le gaosiga na fuaina i le tele o tausaga.

O lea la ua matua'i fa'atauva'a uma i tatou, afifiina, ma fa'agasolo fa'asoa erlang i totonu o se siosiomaga e tuʻuina atu ai tuatusi IP malosi i luga o le mataupu faavae o le faʻalavelave tele, ma e mafai ona aliali mai nodes ma mou atu i le manaʻo o le mulivae agavale o le scheduler. Ina ia aloese mai faaputuga o code boilerplate i so'o se poloketi fa'atino se tufatufaina erlang, ina ia tetee atu i le siʻosiʻomaga leaga, e manaʻomia le fesoasoani.

mataʻi: Ou te iloa e iai libcluster. E manaia tele, e sili atu i le afe fetu, o le tusitala e lauiloa i totonu o le nuʻu, ma mea uma. Afai o metotia na ofoina mai e lenei afifi mo le fatuina ma le tausia o se fuifui e lava mo oe, ou te fiafia mo oe. Ae paga lea, ou te manaomia le tele o isi mea. Ou te manaʻo e pulea le seti i auiliiliga ae le o se tagata matamata i fafo i le fale tifaga o le toefaʻatulagaina o fuifui.

manaoga

O le mea na ou manaʻomia patino o se faletusi o le a pulea le pulega o le fuifui ma o le ai ai mea nei:

  • galuega manino ma se lisi faigata-coded o nodes ma su'esu'ega malosi e ala i auaunaga erlang;
  • toe faʻafoʻi atoatoa mo suiga uma o le topology (node ​​iina, node iinei, fesoʻotaʻiga le mautonu, vaeluaga);
  • fa'amatalaga manino mo le fa'alauiloaina o se fuifui ma igoa uumi ma pupuu, pei o :nonode@nohost;
  • Lagolago Docker i fafo o le atigipusa, e aunoa ma le tusia o tulafono laiti.

O lona uiga o le mea mulimuli ina ua uma ona ou suʻeina le talosaga i le lotoifale i totonu :nonode@nohost, po'o totonu o se si'osi'omaga fa'afuafua fa'aaoga test_cluster_task, na ona ou fia tamoe docker-compose up --scale my_app=3 ma vaʻai pe faʻafefea ona faʻatinoina ni faʻataʻitaʻiga se tolu i le docker e aunoa ma se suiga o tulafono. Ou te manaʻo foʻi i talosaga faʻalagolago e pei o mnesia - pe a suia le topology, i tua o vaaiga latou te toe fausia le fuifui ola e aunoa ma se kiki faaopoopo mai le talosaga.

Faʻapitoa e le'i fuafuaina e avea ma faletusi e mafaia mea uma mai le lagolagoina o se fuifui i le faia o kofe. E le o se pulu siliva e faʻamoemoe e ufiufi uma mataupu e mafai, pe avea ma se fofo atoatoa faʻale-aʻoaʻoga i le uiga o le au failotu mai CS tuu i lenei faaupuga. O lenei faletusi ua mamanuina e tautua ai se faʻamoemoega sili ona manino, ae faʻatino lelei lana galuega e le tele naua. O lenei fa'amoemoe o le tu'uina atu lea o le manino atoatoa i le va o le si'osi'omaga o atina'e fa'apitonu'u ma se si'osi'omaga fa'amama fa'asoa e tumu i pusa fa'afefe.

Auala filifilia

Faʻapitoa e fa'amoemoe e fa'atino e pei o se talosaga, e ui lava e mafai e tagata fa'aoga maualuluga ona galulue ma le fa'apotopotoga ma le tausiga o le fuifui ma le lima e ala i le ta'avale sa'o Cloister.Manager i le laau supavaisa o le talosaga.

A tamo'e o se talosaga, e fa'alagolago le faletusi config, lea e faitau ai tulaga taua 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

O fa'amaufa'ailoga o lo'o i luga o lona uiga moni o mea nei: Faʻapitoa faʻaaogaina mo le OTP talosaga :my_app, fa'aoga maua auaunaga erlang e fa'afeso'ota'i nodes, a itiiti ifo ma le tolu, ma MyApp.Listener module (fa'atinoina @behaviour Cloister.Listener) ua faʻatulagaina e maua ai faʻamatalaga e uiga i suiga topology. E mafai ona maua se faʻamatalaga auiliili o le faʻatulagaga atoa i totonu fa'amaumauga.

Faatasi ai ma lenei faatulagaga, o le talosaga Faʻapitoa o le a avea fa'alauiloa fa'asolosolo, faʻatuai le faʻagasologa o le amataina o le talosaga autu seia oʻo ina maua se maliega (e tolu nodes e fesoʻotaʻi ma fesoʻotaʻi, e pei o le faʻataʻitaʻiga o loʻo i luga.) O lenei mea e maua ai le talosaga autu le avanoa e manatu ai pe a amata, ua uma ona maua le fuifui. Soo se taimi lava e suia ai le topology (o le a tele naua, aua e le amata faʻatasi uma ia nodes), o le a valaʻau le tagata faʻatau. MyApp.Listener.on_state_change/2. O le tele o taimi matou te faia ai se gaioiga pe a matou mauaina se feʻau tulaga %Cloister.Monitor{status: :up}, o lona uiga: “Talofa, ua faapotopoto le fuifui.”

I le tele o tulaga, faʻapipiʻi consensus: 3 e sili ona lelei aua e tusa lava pe tatou te faʻamoemoe e tele nodes e faʻafesoʻotaʻi, o le toe foʻi mai o le a alu status: :rehashingstatus: :up i so'o se node fou fa'aopoopo pe aveese.

A amata i le atinaʻe faiga, e tatau ona e seti consensus: 1 и Faʻapitoa o le a fa'ase'e ma le fiafia le fa'atali mo le fa'apotopotoga fuifui pe a va'aia e ia :nonode@nohostpoʻo :node@hostpoʻo :[email protected] - fa'atatau ile fa'aogaina o le node (:none | :shortnames | :longnames).

Puleaina o Talosaga Fa'asoa

O talosaga fa'asoa e le'o i totonu o se masini e masani ona aofia ai fa'alagolago fa'asoa, pei ole mnesia. E faigofie mo i matou ona taulimaina a latou toe faʻatulagaina mai le toe foʻi i tua on_state_change/2. O iinei, mo se faʻataʻitaʻiga, o se faʻamatalaga auiliili o le auala e toe faʻaleleia ai mnesia i luga o le lele i totonu fa'amaumauga Faʻapitoa.

Le aoga autu o le faʻaaogaina Faʻapitoa o le faia lea o gaioiga uma e manaʻomia e toe fausia ai le fuifui pe a maeʻa se suiga o le topology lalo o le pulou. O le talosaga e naʻo le taʻavale i totonu o se siosiomaga tufatufaina ua uma ona saunia, faʻatasi ai ma nodes uma e fesoʻotaʻi, e tusa lava pe tatou te iloa tuatusi IP ma o le mea lea o igoa o le node i luma atu, pe ua maeʻa ona tofia / suia. Ole mea lea e matua'i mana'omia ai se fa'atonuga fa'apitoa fa'apipi'i ma mai le va'aiga a le tagata e faia talosaga, e leai se eseesega i le va o le ta'avale i se si'osi'omaga tufatufa po'o le ta'avale i totonu o le lotoifale. :nonode@nohost. E mafai ona e faitau atili e uiga i lenei mea ile fa'amaumauga.

E ui ina lavelave le taulimaina o suiga topology e mafai e ala i se faʻatinoga masani MyApp.Listener, atonu e i ai i taimi uma mata'upu e fa'amaonia ai o nei tapula'a faletusi ma fa'aituau fa'atulaga e avea ma maatulimanu o le fa'atinoga. E lelei, na'o le ave i luga libcluster, lea e sili atu le faʻamoemoega lautele, poʻo le taulimaina foi o le faʻaupuga maualalo e oe lava ia. O le sini o lenei faletusi code e le o le faʻapipiʻiina o faʻataʻitaʻiga uma e mafai, ae ia faʻaogaina le faʻataʻitaʻiga sili ona taatele e aunoa ma se tiga e le manaʻomia ma faʻalavelave faʻapipiʻi kopi.

Manatua: i le taimi lea i le uluaʻi faʻamatalaga sa i ai le fuaitau "Fiafia faʻapipiʻi!", ma Yandex, lea ou te faʻaliliuina (Ou te le tau alu i totonu o lomifefiloi aʻu lava), na ofoina mai ia te aʻu le filifiliga "Fiafia faʻapipiʻi!" Atonu e le mafai ona mafaufau i se faaliliuga sili atu, aemaise lava i le malamalama o le tulaga geopolitical o loʻo i ai nei.

puna: www.habr.com

Faaopoopo i ai se faamatalaga