āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻĢāĻ˛ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻļā§āĻā§āĻ° āĻŦāĻž āĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ āĻ¨ā§āĻā§āĻŽāĻŋāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻ āĻ¨ā§āĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ˛ā§āĻĄ āĻāĻĄāĻŧ āĻāĻŽāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¤āĻŦā§ āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻ¤ā§āĻā§āĻ āĻāĻāĻ¨āĻžāĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¨ā§āĻĄ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻžāĻ¨ā§ āĻāĻŦāĻ āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ā§ āĻāĻžāĻā§āĻ° āĻāĻžāĻĒ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°ā§āĨ¤
āĻāĻāĻž āĻāĻ¤ āĻāĻžāĻā§āĻ¯āĻŦāĻžāĻ¨ āĻ¯ā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ erlang, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻ° āĻŽāĻ¨ā§āĻ°āĻŽ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻāĻŦāĻ āĻāĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻšāĻžāĻāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻāĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ-āĻļā§āĻ°ā§āĻŖā§ āĻ°āĻ¯āĻŧā§āĻā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¨ā§āĻĄā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻ˛āĻŋāĻā§āĻ āĻāĻŦāĻ āĻŽāĻ¨āĻŋāĻāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ¸ āĻšāĻā§āĻā§, āĻ¸ā§āĻŦāĻā§āĻ [âĻ]
āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻāĻā§ āĻŦā§āĻļāĻŋ āĻāĻāĻŋāĻ˛āĨ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ erlang āĻŦāĻŋāĻāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯āĻāĻ¨ "āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°" āĻŽāĻžāĻ¨ā§ āĻļāĻŋāĻĒāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ˛ā§āĻšāĻžāĻ° āĻŦāĻžāĻā§āĻ¸, āĻāĻŦāĻ "āĻĄāĻāĻžāĻ°" āĻāĻŋāĻ˛ āĻ˛āĻāĻļā§āĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻļāĻŦā§āĻĻāĨ¤ āĻāĻŋāĻ¤āĻ°ā§ IP4 āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ āĻŦā§āĻ¯āĻā§āĻ¤ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŋāĻ˛, āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦā§āĻ°ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻĻā§āĻ°ā§āĻ° āĻ¤āĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŋāĻŦāĻžāĻ¨ā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻāĻā§āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻĄāĻŧ āĻāĻĒāĻāĻžāĻāĻŽ āĻāĻ¯āĻŧā§āĻ āĻĻāĻļāĻā§ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ¸āĻāĻ˛ā§āĻ āĻ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§āĻ¯āĻāĻžāĻŦā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ, āĻĒā§āĻ¯āĻžāĻā§āĻāĻĄ āĻāĻŦāĻ āĻāĻ˛āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖ erlang āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽāĻ¨ā§āĻ¸ā§āĻ° āĻ¨ā§āĻ¤āĻŋāĻ¤ā§ āĻšāĻ¸ā§āĻ¤āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻžāĻ°ā§āĻ° āĻŦāĻžāĻŽ āĻā§āĻĄāĻŧāĻžāĻ˛āĻŋāĻ¤ā§ āĻ āĻĻā§āĻļā§āĻ¯ āĻšāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻŦāĻ¯āĻŧāĻ˛āĻžāĻ°āĻĒā§āĻ˛ā§āĻ āĻā§āĻĄā§āĻ° āĻāĻžāĻĻāĻž āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ erlang, āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ˛ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻŽā§āĻāĻžāĻŦā§āĻ˛āĻž āĻāĻ°āĻ¤ā§, āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨.
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯: āĻāĻŽāĻŋ āĻ¸āĻā§āĻ¤āĻ¨ āĻ¯ā§ āĻāĻā§ libcluster
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž
āĻāĻŽāĻžāĻ° āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§ āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŋāĻ˛ āĻ¤āĻž āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ¨ā§āĻŦā§ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻĨāĻžāĻāĻŦā§:
- āĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻšāĻžāĻ°ā§āĻĄ-āĻā§āĻĄā§āĻĄ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻŦāĻā§āĻ āĻāĻžāĻ erlang;
- āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĒā§āĻ˛āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ (āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¨ā§āĻĄ, āĻāĻāĻžāĻ¨ā§ āĻ¨ā§āĻĄ, āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ āĻ¸ā§āĻĨāĻŋāĻ°āĻ¤āĻž, āĻŦāĻŋāĻāĻžāĻāĻ¨);
- āĻĻā§āĻ°ā§āĻ āĻāĻŦāĻ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¨āĻžāĻŽ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻā§āĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸
:nonode@nohost
; - āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§ āĻā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĄāĻāĻžāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻŦāĻžāĻā§āĻ¸ā§āĻ° āĻŦāĻžāĻāĻ°ā§āĨ¤
āĻĒāĻ°ā§āĻ°āĻāĻŋāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻŽāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ :nonode@nohost
, āĻ
āĻĨāĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻ¤ā§āĻ°āĻŋāĻŽāĻāĻžāĻŦā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻĒāĻ°āĻŋāĻŦā§āĻļā§ test_cluster_task
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
āĻŽāĻĄāĻŋāĻāĻ˛ (āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ @behaviour Cloister.Listener
āĻāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨, āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸āĻā§āĻā§ āĻŽāĻ āĻšāĻ¤ā§ āĻšāĻŦā§ MyApp.Listener.on_state_change/2
%Cloister.Monitor{status: :up}
, āĻ¯āĻžāĻ° āĻ
āĻ°ā§āĻĨ: "āĻšā§āĻ¯āĻžāĻ˛ā§, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤"
āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ consensus: 3
āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻāĻ°ā§ āĻ¨ā§āĻĄ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻļāĻž āĻāĻ°āĻ˛ā§āĻ, āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻšāĻŦā§ status: :rehashing
â status: :up
āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻŦāĻž āĻ
āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻā§āĻ¨ā§ āĻ¨ā§āĻĄā§āĨ¤
āĻŦāĻŋāĻāĻžāĻļ āĻŽā§āĻĄā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻŦāĻ˛ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ consensus: 1
и āĻŽāĻ āĻ¯āĻāĻ¨ āĻ¤āĻŋāĻ¨āĻŋ āĻĻā§āĻā§āĻ¨ āĻ¤āĻāĻ¨ āĻāĻ¨āĻ¨ā§āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻŽāĻžāĻŦā§āĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§āĻ¨ :nonode@nohost
āĻ
āĻĨāĻŦāĻž :node@host
āĻ
āĻĨāĻŦāĻž :[email protected]
- āĻ¨ā§āĻĄāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ (:none | :shortnames | :longnames
).
āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻĄ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻļā§āĻ¨ā§āĻ¯ā§ āĻ¨āĻ¯āĻŧ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ mnesia
. āĻāĻāĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĨā§āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻā§āĻˇā§ āĻ¸āĻšāĻ on_state_change/2
. āĻāĻāĻžāĻ¨ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŋāĻāĻžāĻŦā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§ mnesia
āĻĢā§āĻ˛āĻžāĻ āĻāĻ¨
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻŽāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻĒā§āĻ˛āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻĒāĻ°ā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ āĻĢāĻŖāĻž āĻ
āĻ§ā§āĻ¨ā§. āĻāĻŽāĻ°āĻž āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻ¸ā§āĻāĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻĄā§āĻ° āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋ āĻāĻā§ āĻĨā§āĻā§āĻ āĻāĻžāĻ¨āĻŋ āĻāĻŋāĻ¨āĻž āĻŦāĻž āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ/āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻļā§āĻˇā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻā§āĻŦāĻ˛ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻ˛ā§, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨ā§āĻĄ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻŦāĻžāĻ°ā§āĻ āĻā§āĻ¨ā§ āĻŦāĻŋāĻļā§āĻˇ āĻĄāĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°ā§āĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻŦāĻž āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ¨ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ¨ā§āĻāĨ¤ :nonode@nohost
. āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¯āĻĻāĻŋāĻ āĻāĻĒā§āĻ˛āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻāĻŋāĻ˛ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ āĻāĻāĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŽā§āĻāĻŦ MyApp.Listener
, āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻā§āĻˇāĻĒāĻžāĻ¤āĻā§āĻ˛āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻž āĻ āĻŋāĻ āĻāĻā§, āĻļā§āĻ§ā§ āĻāĻĒāĻ°ā§āĻā§āĻ¤ āĻ¨āĻŋāĻ¨ libcluster
, āĻ¯āĻž āĻāĻ°āĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ-āĻāĻĻā§āĻĻā§āĻļā§āĻ¯, āĻŦāĻž āĻāĻŽāĻ¨āĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨āĻŋāĻā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻ āĻā§āĻĄ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻĻā§āĻļā§āĻ¯āĻā§ āĻāĻāĻžāĻ° āĻāĻ°āĻž āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻ
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦā§āĻ¯āĻĨāĻž āĻāĻŦāĻ āĻāĻˇā§āĻāĻāĻ° āĻāĻĒāĻŋ-āĻĒā§āĻ¸ā§āĻ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĻā§āĻļā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻŽā§āĻ˛ āĻļāĻŦā§āĻĻāĻāĻŋ āĻāĻŋāĻ˛ "āĻšā§āĻ¯āĻžāĻĒāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻŋāĻ!", āĻāĻŦāĻ āĻāĻ¯āĻŧāĻžāĻ¨āĻĄā§āĻā§āĻ¸, āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŽāĻŋ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻŋ (āĻāĻŽāĻžāĻā§ āĻ¨āĻŋāĻā§āĻā§ āĻ āĻāĻŋāĻ§āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž), āĻāĻŽāĻžāĻā§ "āĻšā§āĻ¯āĻžāĻĒāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻŋāĻ!" āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ āĻĢāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻ˛āĨ¤ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻā§-āĻ°āĻžāĻāĻ¨ā§āĻ¤āĻŋāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻāĻ˛ā§āĻā§ āĻāĻ° āĻĨā§āĻā§ āĻāĻžāĻ˛ā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ āĻ¸āĻŽā§āĻāĻŦāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com