āĻĒā§āϰāĻžāϝāĻŧ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻĢāϞ āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻļā§āĻā§āϰ āĻŦāĻž āĻĒāϰ⧠āĻāĻāĻāĻŋ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āĻĒā§āϰāĻŦā§āĻļ āĻāϰ⧠āϝā§āĻāĻžāύ⧠āĻ āύā§āĻā§āĻŽāĻŋāĻ āϏā§āĻā§āϞāĻŋāĻ āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤ āĻ āύā§āĻ āĻā§āώā§āϤā§āϰā§, āĻāĻĒāύāĻŋ āϏāĻšāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻāĻĻāĻžāĻšāϰāĻŖ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āϞā§āĻĄ āĻāĻĄāĻŧ āĻāĻŽāĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āϤāĻŦā§ āĻāĻŽāύ āĻāĻŋāĻā§ āϤā§āĻā§āĻ āĻāĻāύāĻžāĻ āϰāϝāĻŧā§āĻā§ āϝā§āĻāĻžāύ⧠āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻšāĻŦā§ āϝ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āύā§āĻĄ āĻāĻā§ āĻ āĻĒāϰā§āϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻžāύ⧠āĻāĻŦāĻ āϏāĻžāĻŦāϧāĻžāύ⧠āĻāĻžāĻā§āϰ āĻāĻžāĻĒ āĻŦāĻŋāϤāϰāĻŖ āĻāϰā§āĨ¤

āĻāĻāĻž āĻāϤ āĻāĻžāĻā§āϝāĻŦāĻžāύ āϝ⧠āĻĒāϰāĻŋāĻŖāϤ erlang, āϝāĻž āĻāĻŽāϰāĻž āĻāϰ āĻŽāύā§āϰāĻŽ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻāĻŦāĻ āĻāϰ āĻāĻžāϰāĻĒāĻžāĻļā§ āĻšāĻžāĻāĻĒā§āϰ āĻāύā§āϝ āĻŦā§āĻā§ āύāĻŋāϝāĻŧā§āĻāĻŋ, āĻāϰ āĻāĻāĻāĻŋ āĻĒā§āϰāĻĨāĻŽ-āĻļā§āϰā§āĻŖā§ āϰāϝāĻŧā§āĻā§ . āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻāĻāĻžāĻŦā§, āĻāĻāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϤā§āĻā§āĻ āĻļā§āύāĻžāĻā§āĻā§:
āĻŦāĻŋāĻāĻŋāύā§āύ āύā§āĻĄā§āϰ āĻĒā§āϰāϏā§āϏā§āϰ āĻŽāϧā§āϝā§, āϏā§āĻāϏāĻžāĻĨā§ āϞāĻŋāĻā§āĻ āĻāĻŦāĻ āĻŽāύāĻŋāĻāϰā§āϰ āĻŽāϧā§āϝ⧠āĻŦāĻžāϰā§āϤāĻž āĻĒāĻžāϏ āĻšāĻā§āĻā§, āϏā§āĻŦāĻā§āĻ [âĻ]
āĻ āύā§āĻļā§āϞāύā§, āϏāĻŦāĻāĻŋāĻā§ āĻāĻāĻā§ āĻŦā§āĻļāĻŋ āĻāĻāĻŋāϞāĨ¤ āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ erlang āĻŦāĻŋāĻāĻļāĻŋāϤ āĻšāϝāĻŧā§āĻāĻŋāϞ āϝāĻāύ "āĻāύā§āĻā§āĻāύāĻžāϰ" āĻŽāĻžāύ⧠āĻļāĻŋāĻĒāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āϞā§āĻšāĻžāϰ āĻŦāĻžāĻā§āϏ, āĻāĻŦāĻ "āĻĄāĻāĻžāϰ" āĻāĻŋāϞ āϞāĻāĻļā§āϰāĻŽā§āϝāĻžāύā§āϰ āĻĒā§āϰāϤāĻŋāĻļāĻŦā§āĻĻāĨ¤ āĻāĻŋāϤāϰ⧠IP4 āĻ āύā§āĻāĻā§āϞāĻŋ āĻ āĻŦā§āϝāĻā§āϤ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŋāϞ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻŦā§āϰā§āĻāĻā§āϞāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻĻā§āϰā§āϰ āϤāĻžāϰā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŋāĻŦāĻžāύā§āϰ āĻāĻžāϰāĻŖā§ āĻāĻā§āĻāĻŋāϞ āĻāĻŦāĻ āĻāϤā§āĻĒāĻžāĻĻāύ āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāϰ āĻāĻĄāĻŧ āĻāĻĒāĻāĻžāĻāĻŽ āĻāϝāĻŧā§āĻ āĻĻāĻļāĻā§ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤
āĻāĻāύ āĻāĻŽāϰāĻž āϏāĻāϞā§āĻ āĻ āĻŦāĻŋāĻļā§āĻŦāĻžāϏā§āϝāĻāĻžāĻŦā§ āϏā§āĻŦāϝāĻŧāĻāϏāĻŽā§āĻĒā§āϰā§āĻŖ, āĻĒā§āϝāĻžāĻā§āĻāĻĄ āĻāĻŦāĻ āĻāϞāĻŽāĻžāύ āĻŦāĻŋāϤāϰāĻŖ erlang āĻāĻāĻāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļā§ āϝā§āĻāĻžāύ⧠āĻāϤāĻŋāĻļā§āϞ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāύāĻžāĻā§āϞāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āϰā§āϝāĻžāύā§āĻĄāĻŽāύā§āϏā§āϰ āύā§āϤāĻŋāϤ⧠āĻšāϏā§āϤāĻžāύā§āϤāϰ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āύā§āĻĄāĻā§āϞāĻŋ āĻāĻĒāϏā§āĻĨāĻŋāϤ āĻšāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻļāĻŋāĻĄāĻŋāĻāϞāĻžāϰā§āϰ āĻŦāĻžāĻŽ āĻā§āĻĄāĻŧāĻžāϞāĻŋāϤ⧠āĻ āĻĻā§āĻļā§āϝ āĻšāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻŦāϝāĻŧāϞāĻžāϰāĻĒā§āϞā§āĻ āĻā§āĻĄā§āϰ āĻāĻžāĻĻāĻž āĻāĻĄāĻŧāĻžāϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒ āĻāϞāĻŽāĻžāύ āĻāĻāĻāĻŋ āĻŦāĻŋāϤāϰāĻŖ erlang, āĻĒā§āϰāϤāĻŋāĻā§āϞ āĻĒāϰāĻŋāĻŦā§āĻļ āĻŽā§āĻāĻžāĻŦā§āϞāĻž āĻāϰāϤā§, āϏāĻžāĻšāĻžāϝā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύ.
āĻŽāύā§āϤāĻŦā§āϝ: āĻāĻŽāĻŋ āϏāĻā§āϤāύ āϝ⧠āĻāĻā§ . āĻāĻāĻŋ āϏāϤā§āϝāĻŋāĻ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ, āĻāĻāĻŋāϤ⧠āĻāĻ āĻšāĻžāĻāĻžāϰā§āϰāĻ āĻŦā§āĻļāĻŋ āϤāĻžāϰāĻž āϰāϝāĻŧā§āĻā§, āϞā§āĻāĻ āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧā§āϰ āĻŽāϧā§āϝ⧠āĻŦāĻŋāĻā§āϝāĻžāϤ āĻāĻŦāĻ āĻāĻ āϏāĻŽāϏā§āϤ āĻāĻŋāĻā§ā§ˇ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āϤā§āϰāĻŋ āĻāĻŦāĻ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻāĻžāϰ āĻāύā§āϝ āĻāĻ āĻĒā§āϝāĻžāĻā§āĻā§āϰ āĻĻā§āĻāϝāĻŧāĻž āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āϝāĻĨā§āώā§āĻ āĻšāϝāĻŧ, āĻāĻŽāĻŋ āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āĻā§āĻļāĻŋāĨ¤ āĻĻā§āϰā§āĻāĻžāĻā§āϝāĻā§āϰāĻŽā§, āĻāĻŽāĻžāϰ āĻāϰāĻ āĻ āύā§āĻ āĻāĻŋāĻā§ āĻĻāϰāĻāĻžāϰāĨ¤ āĻāĻŽāĻŋ āϏā§āĻāĻāĻĒāĻāĻŋ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤāĻāĻžāĻŦā§ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāϤ⧠āĻāĻžāĻ āĻāĻŦāĻ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻĒā§āύāϰā§āĻāĻ āύā§āϰ āĻĨāĻŋāϝāĻŧā§āĻāĻžāϰ⧠āĻŦāĻžāĻāϰā§āϰ āĻĻāϰā§āĻļāĻ āĻšāϤ⧠āĻāĻžāĻ āύāĻžāĨ¤
āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž
āĻāĻŽāĻžāϰ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤāĻāĻžāĻŦā§ āϝāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻŋāϞ āϤāĻž āĻšāϞ āĻāĻāĻāĻŋ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϝāĻž āĻā§āϞāĻžāϏā§āĻāĻžāϰā§āϰ āĻĒāϰāĻŋāĻāĻžāϞāύāĻžāϰ āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦ āύā§āĻŦā§ āĻāĻŦāĻ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋ āĻĨāĻžāĻāĻŦā§:
- āύā§āĻĄā§āϰ āĻāĻāĻāĻŋ āĻšāĻžāϰā§āĻĄ-āĻā§āĻĄā§āĻĄ āϤāĻžāϞāĻŋāĻāĻž āĻāĻŦāĻ āĻĒāϰāĻŋāώā§āĻŦāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāϤāĻŋāĻļā§āϞ āĻāĻŦāĻŋāώā§āĻāĻžāϰ āĻāĻāϝāĻŧā§āϰ āϏāĻžāĻĨā§ āϏā§āĻŦāĻā§āĻ āĻāĻžāĻ erlang;
- āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻĒā§āϞāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāύā§āϝ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻžāϰā§āϝāĻāϰ⧠āĻāϞāĻŦā§āϝāĻžāĻ (āϏā§āĻāĻžāύ⧠āύā§āĻĄ, āĻāĻāĻžāύ⧠āύā§āĻĄ, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻ āϏā§āĻĨāĻŋāϰāϤāĻž, āĻŦāĻŋāĻāĻžāĻāύ);
- āĻĻā§āϰā§āĻ āĻāĻŦāĻ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āύāĻžāĻŽ āϏāĻš āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āĻāύā§āϝ āϏā§āĻŦāĻā§āĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ
:nonode@nohost; - āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§ āĻā§āĻĄ āϞāĻŋāĻāϤ⧠āĻāĻžāĻĄāĻŧāĻžāĻ āĻĄāĻāĻžāϰ āϏāĻŽāϰā§āĻĨāύ āĻŦāĻžāĻā§āϏā§āϰ āĻŦāĻžāĻāϰā§āĨ¤
āĻĒāϰā§āϰāĻāĻŋāϰ āĻŽāĻžāύ⧠āĻšāϞ āϝ⧠āĻāĻŽāĻŋ āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāĻžāĻŦā§ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻĒāϰ⧠:nonode@nohost, āĻ
āĻĨāĻŦāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āĻā§āϤā§āϰāĻŋāĻŽāĻāĻžāĻŦā§ āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻĒāϰāĻŋāĻŦā§āĻļā§ , āĻāĻŽāĻŋ āĻļā§āϧ⧠āĻĻā§āĻĄāĻŧāĻžāϤ⧠āĻāĻžāĻ docker-compose up --scale my_app=3 āĻāĻŦāĻ āĻĻā§āĻā§āύ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻā§āύ āĻā§āĻĄ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĄāĻāĻžāϰ⧠āϤāĻŋāύāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻžāϰā§āϝāĻāϰ āĻāϰā§āĨ¤ āĻāĻŽāĻŋ āϝā§āĻŽāύ āύāĻŋāϰā§āĻāϰāĻļā§āϞ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻāĻžāĻ mnesia - āϝāĻāύ āĻāĻĒā§āϞāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧ, āĻĒāϰā§āĻĻāĻžāϰ āĻāĻĄāĻŧāĻžāϞ⧠āϤāĻžāϰāĻž āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻĨā§āĻā§ āĻā§āύ⧠āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻāĻŋāĻ āĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āϞāĻžāĻāĻ āĻĒā§āύāϰā§āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻāϰā§āĨ¤
āĻŽāĻ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āϏāĻŽāϰā§āĻĨāύ āĻĨā§āĻā§ āĻāĻĢāĻŋ āϤā§āϰāĻŋ āϏāĻŦāĻāĻŋāĻā§ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻāĻāĻāĻŋ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻšāϤ⧠āĻāĻĻā§āĻĻā§āĻļā§āϝ āĻāĻŋāϞ āύāĻž. āĻāĻāĻŋ āĻāĻāĻāĻŋ āϰā§āĻĒāĻžāϞ⧠āĻŦā§āϞā§āĻ āύāϝāĻŧ āϝāĻžāϰ āϞāĻā§āώā§āϝ āϏāĻŽāϏā§āϤ āϏāĻŽā§āĻāĻžāĻŦā§āϝ āĻā§āϏ āĻāĻāĻžāϰ āĻāϰāĻž āĻŦāĻž āĻāĻāĻžāĻĄā§āĻŽāĻŋāĻāĻāĻžāĻŦā§ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϏāĻŽāĻžāϧāĻžāύ āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝ⧠āĻ āϰā§āĻĨā§ āϤāĻžāϤā§āϤā§āĻŦāĻŋāĻāϰāĻž CS āĻāĻ āĻĒāĻĻā§ āϰāĻžāĻā§āύāĨ¤ āĻāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āϏā§āĻĒāώā§āĻ āĻāĻĻā§āĻĻā§āĻļā§āϝ āĻĒāϰāĻŋāĻŦā§āĻļāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϤāĻŦā§ āĻāĻāĻŋāϰ āĻāĻžāĻāĻāĻŋ āĻā§āĻŦ āĻŦāĻĄāĻŧ āύāϝāĻŧāĨ¤ āĻāĻ āϞāĻā§āώā§āϝ āĻšāĻŦā§ āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻāύā§āύāϝāĻŧāύ āĻĒāϰāĻŋāĻŦā§āĻļ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻā§āϞ āĻĒāĻžāϤā§āϰ⧠āĻĒā§āϰā§āĻŖ āĻŦāĻŋāϤāϰāĻŖāĻā§āϤ āĻāϞāĻžāϏā§āĻāĻŋāĻ āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻŽāϧā§āϝ⧠āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϏā§āĻŦāĻā§āĻāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻžāĨ¤
āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻž āĻĒāĻĻā§āϧāϤāĻŋ
āĻŽāĻ āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻžāϞāĻžāύā§āϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ⧠āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϝāĻĻāĻŋāĻ āĻāύā§āύāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āϏāϰāĻžāϏāϰāĻŋ āĻāĻžāϞāĻžāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰā§āϰ āϏāĻŽāĻžāĻŦā§āĻļ āĻāĻŦāĻ āϰāĻā§āώāĻŖāĻžāĻŦā§āĻā§āώāĻŖā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠Cloister.Manager āϞāĻā§āώā§āϝ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āϏā§āĻĒāĻžāϰāĻāĻžāĻāĻāĻžāϰ āĻāĻžāĻā§āĨ¤
āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻžāϞāĻžāύ⧠āĻšāϞā§, āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠config, āϝāĻž āĻĨā§āĻā§ āĻāĻāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŽā§āϞāĻŋāĻ āĻŽāĻžāύāĻā§āϞāĻŋ āĻĒāĻĄāĻŧā§:
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āĻāĻĒāϰā§āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§āϞāĻŋ āĻāĻā§āώāϰāĻŋāĻ āĻ
āϰā§āĻĨā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤāĻā§āϞāĻŋ āĻŦā§āĻāĻžāϝāĻŧ: āĻŽāĻ OTP āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ :my_app, āĻŦā§āϝāĻŦāĻšāĻžāϰāϏāĻŽā§āĻš erlang āĻĒāϰāĻŋāώā§āĻŦāĻž āĻāĻŦāĻŋāώā§āĻāĻžāϰ āύā§āĻĄ āϏāĻāϝā§āĻ āĻāϰāϤā§, āĻ
āύā§āϤāϤ āϤāĻŋāύāĻāĻŋ, āĻāĻŦāĻ MyApp.Listener āĻŽāĻĄāĻŋāĻāϞ (āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ ) āĻāĻĒā§āϞāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āĻĒā§āϤ⧠āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύā§āϰ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāϰāĻŖ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāĻŦā§ .
āĻāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ, āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϏāĻā§āĻā§ āĻŽāĻ āĻšāϤ⧠āĻšāĻŦā§ , āĻāĻā§āϝāĻŽāϤ āύāĻž āĻĒā§āĻāĻāĻžāύ⧠āĻĒāϰā§āϝāύā§āϤ āĻŽā§āϞ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋāĻā§ āĻŦāĻŋāϞāĻŽā§āĻŦāĻŋāϤ āĻāϰāĻž (āĻāĻĒāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻŽāϤ⧠āϤāĻŋāύāĻāĻŋ āύā§āĻĄ āϏāĻāϝā§āĻā§āϤ āĻāĻŦāĻ āϏāĻāϝā§āĻā§āϤ āϰāϝāĻŧā§āĻā§āĨ¤) āĻāĻāĻŋ āĻŽā§āϞ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāĻā§ āĻ
āύā§āĻŽāĻžāύ āĻāϰāĻžāϰ āϏā§āϝā§āĻ āĻĻā§āϝāĻŧ āϝ⧠āϝāĻāύ āĻāĻāĻŋ āĻļā§āϰ⧠āĻšāϝāĻŧ, āĻā§āϞāĻžāϏā§āĻāĻžāϰāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻĒāϞāĻŦā§āϧāĨ¤ āϝāĻāύāĻ āĻāĻĒā§āϞāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧ (āĻāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āĻ
āύā§āĻāĻā§āϞāĻŋ āĻĨāĻžāĻāĻŦā§, āĻāĻžāϰāĻŖ āύā§āĻĄāĻā§āϞāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāϏāĻāĻžāĻŦā§ āĻļā§āϰ⧠āĻšāϝāĻŧ āύāĻž), āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰāĻā§ āĻĄāĻžāĻāĻž āĻšāĻŦā§ . āĻāĻŽāϰāĻž āϝāĻāύ āĻāĻāĻāĻŋ āϏā§āĻā§āϝāĻžāĻāĻžāϏ āĻŽā§āϏā§āĻ āĻĒāĻžāĻ āϤāĻāύ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŽāϝāĻŧ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāĻāĻļāύ āĻāϰāĻŋ %Cloister.Monitor{status: :up}, āϝāĻžāϰ āĻ
āϰā§āĻĨ: "āĻšā§āϝāĻžāϞā§, āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻāĻāϤā§āϰāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤"
āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻā§āώā§āϤā§āϰā§, āĻāύāϏā§āĻāϞā§āĻļāύ consensus: 3 āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āĻāĻžāϰāĻŖ āĻāĻŽāϰāĻž āĻāϰ⧠āύā§āĻĄ āϏāĻāϝā§āĻ āĻāϰāĻžāϰ āĻāĻļāĻž āĻāϰāϞā§āĻ, āĻāϞāĻŦā§āϝāĻžāĻ āĻšāĻŦā§ status: :rehashing â status: :up āύāϤā§āύ āϝā§āĻ āĻāϰāĻž āĻŦāĻž āĻ
āĻĒāϏāĻžāϰāĻŖ āĻāϰāĻž āĻā§āύ⧠āύā§āĻĄā§āĨ¤
āĻŦāĻŋāĻāĻžāĻļ āĻŽā§āĻĄā§ āĻļā§āϰ⧠āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻĒāύāĻžāĻā§ āĻā§āĻŦāϞ āϏā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ consensus: 1 и āĻŽāĻ āϝāĻāύ āϤāĻŋāύāĻŋ āĻĻā§āĻā§āύ āϤāĻāύ āĻāύāύā§āĻĻā§āϰ āϏāĻžāĻĨā§ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āϏāĻŽāĻžāĻŦā§āĻļā§āϰ āĻāύā§āϝ āĻ
āĻĒā§āĻā§āώāĻž āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āϝāĻžāĻŦā§āύ :nonode@nohostāĻ
āĻĨāĻŦāĻž :node@hostāĻ
āĻĨāĻŦāĻž :node@host.domain - āύā§āĻĄāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ āϤāĻžāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠(:none | :shortnames | :longnames).
āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĻĒāύāĻž
āĻĄāĻŋāϏā§āĻā§āϰāĻŋāĻŦāĻŋāĻāĻā§āĻĄ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāĻžāύāĻā§āϞāĻŋ āĻļā§āύā§āϝ⧠āύāϝāĻŧ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻŦāĻŋāϤāϰāĻŖ āύāĻŋāϰā§āĻāϰāϤāĻž āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§, āϝā§āĻŽāύ mnesia. āĻāĻāĻ āĻāϞāĻŦā§āϝāĻžāĻ āĻĨā§āĻā§ āϤāĻžāĻĻā§āϰ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻĒāĻā§āώ⧠āϏāĻšāĻ on_state_change/2. āĻāĻāĻžāύā§, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻŋāĻāĻžāĻŦā§ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻžāϰ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāϰāĻŖ āϰāϝāĻŧā§āĻā§ mnesia āĻĢā§āϞāĻžāĻ āĻāύ .
āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻĒā§āϰāϧāĻžāύ āϏā§āĻŦāĻŋāϧāĻž āĻŽāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻĒā§āϞāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻĒāϰ⧠āĻā§āϞāĻžāϏā§āĻāĻžāϰ āĻĒā§āύāϰā§āύāĻŋāϰā§āĻŽāĻžāĻŖā§āϰ āĻāύā§āϝ āϏāĻŽāϏā§āϤ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰ⧠āĻĢāĻŖāĻž āĻ
āϧā§āύā§. āĻāĻŽāϰāĻž āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāύāĻž āĻāĻŦāĻ āϏā§āĻāĻāύā§āϝ āύā§āĻĄā§āϰ āύāĻžāĻŽāĻā§āϞāĻŋ āĻāĻā§ āĻĨā§āĻā§āĻ āĻāĻžāύāĻŋ āĻāĻŋāύāĻž āĻŦāĻž āϏā§āĻā§āϞāĻŋ āĻāϤāĻŋāĻļā§āϞāĻāĻžāĻŦā§ āĻŦāϰāĻžāĻĻā§āĻĻ/āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧā§āĻā§ āĻāĻŋāύāĻž āϤāĻž āύāĻŋāϰā§āĻŦāĻŋāĻļā§āώ⧠āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋ āĻā§āĻŦāϞ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻĒā§āϰāϏā§āϤā§āϤ āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻāϞā§, āϏāĻŽāϏā§āϤ āύā§āĻĄ āϏāĻāϝā§āĻā§āϤ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāϰ āĻāύā§āϝ āĻāĻā§āĻŦāĻžāϰā§āĻ āĻā§āύ⧠āĻŦāĻŋāĻļā§āώ āĻĄāĻāĻžāϰ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏā§āĻāĻŋāĻāϏā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āύā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻĄā§āĻā§āϞāĻĒāĻžāϰā§āϰ āĻĻā§āώā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻŦāĻŋāϤāϰāĻŖ āĻāϰāĻž āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻāĻžāϞāĻžāύ⧠āĻŦāĻž āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻāĻžāϞāĻžāύā§āϰ āĻŽāϧā§āϝ⧠āĻā§āύ⧠āĻĒāĻžāϰā§āĻĨāĻā§āϝ āύā§āĻāĨ¤ :nonode@nohost. āĻāĻĒāύāĻŋ āĻāĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϰāĻ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰā§āύ .
āϝāĻĻāĻŋāĻ āĻāĻĒā§āϞāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻāĻāĻŋāϞ āĻšā§āϝāĻžāύā§āĻĄāϞāĻŋāĻ āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏāĻŽā§āĻāĻŦ MyApp.Listener, āϏāϰā§āĻŦāĻĻāĻž āĻĒā§āϰāĻžāύā§āϤā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝā§āĻāĻžāύ⧠āĻāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĒāĻā§āώāĻĒāĻžāϤāĻā§āϞāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻāĻŋāϤā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦā§ āĻĒā§āϰāĻŽāĻžāĻŖāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻāĻāĻž āĻ āĻŋāĻ āĻāĻā§, āĻļā§āϧ⧠āĻāĻĒāϰā§āĻā§āϤ āύāĻŋāύ libcluster, āϝāĻž āĻāϰāĻ āϏāĻžāϧāĻžāϰāĻŖ-āĻāĻĻā§āĻĻā§āĻļā§āϝ, āĻŦāĻž āĻāĻŽāύāĻāĻŋ āύāĻŋāĻŽā§āύ-āϏā§āϤāϰā§āϰ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āύāĻŋāĻā§ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰā§āύāĨ¤ āĻāĻ āĻā§āĻĄ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āϞāĻā§āώā§āϝ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻŽā§āĻāĻžāĻŦā§āϝ āĻĻā§āĻļā§āϝāĻā§ āĻāĻāĻžāϰ āĻāϰāĻž āύāϝāĻŧ, āϤāĻŦā§ āĻ
āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻŦā§āϝāĻĨāĻž āĻāĻŦāĻ āĻāώā§āĻāĻāϰ āĻāĻĒāĻŋ-āĻĒā§āϏā§āĻ āĻāĻžāĻĄāĻŧāĻžāĻ āϏāĻŦāĻā§āϝāĻŧā§ āϏāĻžāϧāĻžāϰāĻŖ āĻĻā§āĻļā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāĨ¤
āĻĻā§āϰāώā§āĻāĻŦā§āϝ: āĻāĻ āĻŽā§āĻšā§āϰā§āϤ⧠āĻŽā§āϞ āĻļāĻŦā§āĻĻāĻāĻŋ āĻāĻŋāϞ "āĻšā§āϝāĻžāĻĒāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰāĻŋāĻ!", āĻāĻŦāĻ āĻāϝāĻŧāĻžāύāĻĄā§āĻā§āϏ, āϝāĻžāϰ āϏāĻžāĻĨā§ āĻāĻŽāĻŋ āĻ āύā§āĻŦāĻžāĻĻ āĻāϰāĻŋ (āĻāĻŽāĻžāĻā§ āύāĻŋāĻā§āĻā§ āĻ āĻāĻŋāϧāĻžāύ⧠āϝā§āϤ⧠āĻšāĻŦā§ āύāĻž), āĻāĻŽāĻžāĻā§ "āĻšā§āϝāĻžāĻĒāĻŋ āĻā§āϞāĻžāϏā§āĻāĻžāϰāĻŋāĻ!" āĻŦāĻŋāĻāϞā§āĻĒāĻāĻŋ āĻ āĻĢāĻžāϰ āĻāϰā§āĻāĻŋāϞāĨ¤ āĻŦāĻŋāĻļā§āώ āĻāϰ⧠āĻŦāϰā§āϤāĻŽāĻžāύ āĻā§-āϰāĻžāĻāύā§āϤāĻŋāĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϰ āĻāϞā§āĻā§ āĻāϰ āĻĨā§āĻā§ āĻāĻžāϞ⧠āĻ āύā§āĻŦāĻžāĻĻ āĻāϞā§āĻĒāύāĻž āĻāϰāĻž āϏāĻŽā§āĻāĻŦāϤ āĻ āϏāĻŽā§āĻāĻŦāĨ¤
āĻāϤā§āϏ: www.habr.com
