āĻ¯ā§āĻā§āĻ¨ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻšāĻžāĻ-āĻ˛ā§āĻĄ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻĄā§āĻā§āĻ˛āĻĒ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇ āĻā§āĻ˛ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻāĻ¨ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ-āĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻĨāĻž āĻāĻ¸ā§, āĻ¤āĻāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻ¤āĻāĻžāĻ āĻāĻžāĻ°āĻžāĻĒ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻ āĻ¨ā§āĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻ¨āĻžāĻ¯āĻŧāĻ āĻšāĻ˛ āĻ¸āĻŋāĻŽāĻĢāĻ¨āĻŋ 2.3 āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨, āĻ¯āĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻžāĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻŦā§āĻļ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻā§ "āĻ¸āĻŦāĻāĻŋāĻā§ āĻā§āĻ¯āĻžāĻļāĻŋāĻ" āĻ¨ā§āĻ¤āĻŋ āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻā§āĻĄ: āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻŦāĻ āĻāĻĒāĻŋāĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ¤āĻžāĻāĻž, āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛āĻ āĻāĻŦāĻ āĻāĻ°āĻ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§, āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻāĻžāĻā§āĻāĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ°āĻžāĻ¤ā§āĻŽāĻ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻā§āĻ¯āĻžāĻļā§ āĻā§āĻˇāĻ¤āĻŋ āĻā§āĻ°ā§āĻ¤āĻ° āĻĒāĻ°āĻŋāĻŖāĻ¤āĻŋāĻ° āĻĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°ā§: DBMS āĻ¸āĻŋāĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĢā§āĻā§ āĻ¯ā§āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, API āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻāĻ°āĻ¤ā§ āĻāĻ¯āĻŧā§āĻ āĻŽāĻŋāĻ¨āĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻāĻ¯āĻŧāĻžāĻ¨āĻ āĻ§ā§āĻ° āĻŦāĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ āĻ¨ā§āĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻŦā§ā§ˇ
āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ° āĻāĻŋāĻ˛ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻā§ āĻ āĻ¨ā§āĻā§āĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ˛ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž, āĻ āĻ°ā§āĻĨāĻžā§ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄā§ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤āĨ¤ āĻā§āĻ¯āĻžāĻļā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§ā§ āĻāĻ°ā§āĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻā§āĻˇāĻ¤āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨āĨ¤
memcached āĻ¨āĻŋāĻā§āĻ āĻ¸āĻā§āĻā§ āĻā§āĻ˛ āĻāĻŋ?
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, PHP-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻŦāĻā§āĻ¸ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻĄā§āĻāĻž āĻāĻŦāĻ āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻā§ āĻšā§āĻ¯āĻžāĻļāĻŋāĻāĻ¯āĻŧā§āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸āĻŽāĻžāĻ¨āĻāĻžāĻŦā§ āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ, āĻā§āĻ°ā§āĻĒ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻā§ āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ°āĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻŦā§āĻ§āĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻŦāĻŋāĻ˛ā§āĻ-āĻāĻ¨ āĻĢā§āĻāĻ˛āĻāĻāĻžāĻ° āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋ āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻāĻā§āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ (āĻāĻŋāĻ¨ā§āĻ¤ā§, āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻā§āĻ¨ āĻ¤āĻĨā§āĻ¯ āĻ¨ā§āĻ).
āĻ¸ā§āĻļāĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻāĻāĻā§ āĻāĻžāĻ˛: āĻāĻĒāĻ¨āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ memcached.sess_number_of_replicas
, āĻ¯āĻžāĻ° āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻĄā§āĻāĻž āĻāĻāĻ¸āĻžāĻĨā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻŦā§, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ˛ā§, āĻĄā§āĻāĻž āĻ
āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻĨā§āĻā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¯āĻĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋ āĻĄā§āĻāĻž āĻāĻžāĻĄāĻŧāĻžāĻ āĻ
āĻ¨āĻ˛āĻžāĻāĻ¨ā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§ (āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĒā§āĻ¨āĻāĻ¸ā§āĻāĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§ āĻšāĻ¯āĻŧ), āĻāĻŋāĻā§ āĻā§ āĻāĻ° āĻĒāĻā§āĻˇā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻ¸āĻ˛ā§ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻŦā§ āĻ¸ā§āĻļāĻ¨ āĻĄā§āĻāĻžāĻ° āĻā§āĻˇāĻ¤āĻŋ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻŽāĻŋāĻ¸ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ
āĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋāĻ¤ā§ "āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ°" āĻā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨ā§āĻāĨ¤
āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ āĻ¨ā§āĻā§āĻŽāĻŋāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ: āĻ¤āĻžāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ¯āĻžāĻļā§ āĻŦāĻŋāĻļāĻžāĻ˛ āĻāĻāĻžāĻ°ā§ āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§ āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻšā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻā§āĻĄ āĻĨā§āĻā§ āĻāĻāĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§, āĻ¸āĻā§āĻāĻŋāĻ¤ āĻĄā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻāĻ¯āĻŧā§āĻ āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻā§āĻ° āĻŦā§āĻļāĻŋ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ āĻāĻ āĻŦāĻž āĻĻā§āĻāĻŋ āĻ¨ā§āĻĄā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻāĻžāĻā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻāĻŽāĻĒāĻā§āĻˇā§ āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻļā§ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻŦāĻāĻžāĻ¯āĻŧ āĻ°ā§āĻā§ āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄā§āĻ° āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻā§āĻ˛ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻ āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻ¸āĻĻā§āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻŋāĻ˛ āĻ¨āĻž... āĻāĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻĒā§āĻ°āĻžāĻā§āĻ¨āĻ¤ā§āĻŦ āĻ¸ā§āĻŽāĻ°āĻŖ āĻāĻ°āĻž āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨, āĻ¯ā§ āĻāĻžāĻ°āĻŖā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ˛ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ āĻ¸āĻŽā§āĻāĻŦ āĻāĻŋāĻ˛āĨ¤ āĻāĻ¸ā§āĻ¨ āĻ¸ā§āĻļāĻ¨ āĻĄā§āĻāĻž āĻšāĻžāĻ°āĻžāĻ¨ā§āĻ° āĻāĻĨāĻžāĻ āĻā§āĻ˛ā§ āĻ¯āĻžāĻ āĻ¨āĻž: āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŦā§āĻ¯āĻžāĻĒāĻ āĻ˛āĻāĻāĻāĻ āĻĨā§āĻā§ āĻā§āĻ°āĻžāĻšāĻā§āĻ° āĻā§āĻ āĻāĻžāĻāĻĒāĻā§āĨ¤
āĻāĻĻāĻ°ā§āĻļāĻāĻžāĻŦā§ āĻāĻāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŋāĻ˛ āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻŦāĻžāĻāĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻā§āĻ˛ āĻŦāĻž āĻā§āĻ˛ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ āĻā§āĻļāĻ˛ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĻā§
mcrouter
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄ āĻ°āĻžāĻāĻāĻžāĻ° āĻ¯āĻž āĻĢā§āĻ¸āĻŦā§āĻ āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻāĻŋ āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄ āĻā§āĻā§āĻ¸āĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§, āĻ¯āĻž āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¸ā§āĻā§āĻ˛ memcached āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻāĻ¨ā§āĻŽāĻžāĻĻ āĻ
āĻ¨ā§āĻĒāĻžāĻ¤ mcrouter āĻāĻ° āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
- āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ°ā§āĻāĻ°ā§āĻĄ;
- āĻā§āĻ¨ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĻā§āĻāĻž āĻĻāĻŋāĻ˛ā§ āĻā§āĻ°ā§āĻĒā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĢāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻŦā§āĻ¯āĻžāĻŦāĻ¸āĻžāĻ° āĻāĻ¨ā§āĻ¯!
mcrouter āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
āĻāĻŽāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻ¯āĻžāĻŦ:
{
"pools": {
"pool00": {
"servers": [
"mc-0.mc:11211",
"mc-1.mc:11211",
"mc-2.mc:11211"
},
"pool01": {
"servers": [
"mc-1.mc:11211",
"mc-2.mc:11211",
"mc-0.mc:11211"
},
"pool02": {
"servers": [
"mc-2.mc:11211",
"mc-0.mc:11211",
"mc-1.mc:11211"
},
"route": {
"type": "OperationSelectorRoute",
"default_policy": "AllMajorityRoute|Pool|pool00",
"operation_policies": {
"get": {
"type": "RandomRoute",
"children": [
"MissFailoverRoute|Pool|pool02",
"MissFailoverRoute|Pool|pool00",
"MissFailoverRoute|Pool|pool01"
]
}
}
}
}
āĻā§āĻ¨ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒā§āĻ˛? āĻā§āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻšāĻ¯āĻŧ? āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
- āĻāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§, mcrouter āĻ¸ā§āĻ āĻĒāĻĨāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻŦā§ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĨ¤ āĻ˛ā§āĻāĻāĻŋ āĻ¤āĻžāĻā§ āĻāĻ āĻāĻĨāĻž āĻŦāĻ˛ā§
OperationSelectorRoute
. - GET āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻ¯āĻžāĻ¨
RandomRoute
āĻ¯āĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻ°ā§ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ˛ āĻŦāĻž āĻ°ā§āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§children
. āĻāĻ āĻ ā§āĻ¯āĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻāĻāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻšāĻ¯āĻŧMissFailoverRoute
, āĻ¯āĻž āĻĒā§āĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻāĻāĻŋ āĻĄā§āĻāĻž āĻ¸āĻš āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻžāĻ¯āĻŧ, āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻŦā§āĨ¤ - āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻā§āĻāĻŋāĻ¯āĻŧāĻžāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ
MissFailoverRoute
āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ˛ āĻ¸āĻš, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĨāĻŽā§ āĻĒā§āĻ°āĻĨāĻŽ āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻ¸āĻŦā§ āĻāĻŦāĻ āĻŦāĻžāĻāĻŋāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŦā§ āĻ¯āĻāĻ¨ āĻā§āĻ¨āĻ āĻĄā§āĻāĻž āĻ¨ā§āĻāĨ¤ āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻšāĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ˛ā§āĻĄ, āĻ¤āĻžāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸āĻš āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ - āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ
āĻ¨ā§āĻ°ā§āĻ§ (āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ°ā§āĻāĻ°ā§āĻĄ) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ
AllMajorityRoute
. āĻāĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻāĻŋ āĻĒā§āĻ˛ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻĒāĻā§āĻˇā§ N/2 + 1 āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĨā§āĻā§AllSyncRoute
āĻ˛ā§āĻāĻžāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻĒāĻ°āĻŋāĻ¤ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ вŅĐĩŅ āĻā§āĻ°ā§āĻĒā§āĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ - āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻāĻāĻŋ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŦā§SERVER_ERROR
. āĻ¯āĻĻāĻŋāĻ mcrouter āĻāĻĒāĻ˛āĻā§āĻ¯ āĻā§āĻ¯āĻžāĻļā§ āĻĄā§āĻāĻž āĻ¯ā§āĻ āĻāĻ°āĻŦā§, āĻāĻ˛āĻŋāĻ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻŦā§ āĻāĻŦāĻ āĻ¨ā§āĻāĻŋāĻļ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĨ¤AllMajorityRoute
āĻāĻ¤āĻāĻž āĻāĻ ā§āĻ° āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ āĻ°ā§āĻ§ā§āĻ āĻāĻāĻ¨āĻŋāĻāĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĨā§āĻā§ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻŽā§āĻ˛ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻ āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋ āĻšāĻ˛ āĻ¯āĻĻāĻŋ āĻā§āĻ¯āĻžāĻļā§ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻā§āĻ¨āĻ āĻĄā§āĻāĻž āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ N āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻāĻ¸āĻ˛ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻŦā§ - āĻĨā§āĻā§ āĻ¸āĻŦ āĻĨā§āĻā§ āĻĒā§āĻ˛ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĨ¤ āĻāĻŽāĻ°āĻž āĻĒā§āĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŽāĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĻā§āĻāĻŋāĻ¤ā§: āĻ¸āĻā§āĻāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻŦāĻ˛āĻŋāĻĻāĻžāĻ¨, āĻāĻŽāĻ°āĻž āĻĒāĻžāĻĐžāĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻā§ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻā§āĻ āĻāĻ¤āĻŋ āĻāĻŦāĻ āĻāĻŽ āĻ˛ā§āĻĄāĨ¤
NB: āĻāĻĒāĻ¨āĻŋ mcrouter āĻļā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ˛āĻŋāĻā§āĻ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ āĻāĻŦāĻ mcrouter āĻāĻ˛āĻŽāĻžāĻ¨
āĻāĻŽāĻžāĻĻā§āĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ (āĻāĻŦāĻ āĻ¨āĻŋāĻā§āĻ memcached) Kubernetes-āĻ āĻāĻ˛ā§ - āĻ¸ā§āĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, mcrouterāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻāĻ¨ā§āĻ¯ āĻ§āĻžāĻ°āĻ āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ
NB: āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻ˛āĻŋ āĻāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ
configVersion: 1
project: mcrouter
deploy:
namespace: '[[ env ]]'
helmRelease: '[[ project ]]-[[ env ]]'
---
image: mcrouter
from: ubuntu:16.04
mount:
- from: tmp_dir
to: /var/lib/apt/lists
- from: build_dir
to: /var/cache/apt
ansible:
beforeInstall:
- name: Install prerequisites
apt:
name: [ 'apt-transport-https', 'tzdata', 'locales' ]
update_cache: yes
- name: Add mcrouter APT key
apt_key:
url: https://facebook.github.io/mcrouter/debrepo/xenial/PUBLIC.KEY
- name: Add mcrouter Repo
apt_repository:
repo: deb https://facebook.github.io/mcrouter/debrepo/xenial xenial contrib
filename: mcrouter
update_cache: yes
- name: Set timezone
timezone:
name: "Europe/Moscow"
- name: Ensure a locale exists
locale_gen:
name: en_US.UTF-8
state: present
install:
- name: Install mcrouter
apt:
name: [ 'mcrouter' ]
... āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ āĻāĻāĻ āĻšā§āĻ˛āĻŽ āĻāĻžāĻ°ā§āĻ. āĻŽāĻāĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻāĻā§ (āĻ¯āĻĻāĻŋ āĻāĻžāĻ°āĻ āĻāĻžāĻā§ āĻāĻ°āĻ āĻ¸ā§āĻŦāĻ˛ā§āĻĒ āĻ āĻŽāĻžāĻ°ā§āĻāĻŋāĻ¤ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĨāĻžāĻā§ āĻ¤āĻŦā§ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°ā§āĻ¨):
{{- $count := (pluck .Values.global.env .Values.memcached.replicas | first | default .Values.memcached.replicas._default | int) -}}
{{- $pools := dict -}}
{{- $servers := list -}}
{{- /* ĐĐ°ĐŋĐžĐģĐŊŅĐĩĐŧ ĐŧĐ°ŅŅив двŅĐŧŅ ĐēĐžĐŋиŅĐŧи ŅĐĩŅвĐĩŅОв: "0 1 2 0 1 2" */ -}}
{{- range until 2 -}}
{{- range $i, $_ := until $count -}}
{{- $servers = append $servers (printf "mc-%d.mc:11211" $i) -}}
{{- end -}}
{{- end -}}
{{- /* ĐĄĐŧĐĩŅĐ°ŅŅŅ ĐŋĐž ĐŧĐ°ŅŅивŅ, ĐŋĐžĐģŅŅĐ°ĐĩĐŧ N ŅŅĐĩСОв: "[0 1 2] [1 2 0] [2 0 1]" */ -}}
{{- range $i, $_ := until $count -}}
{{- $pool := dict "servers" (slice $servers $i (add $i $count)) -}}
{{- $_ := set $pools (printf "MissFailoverRoute|Pool|pool%02d" $i) $pool -}}
{{- end -}}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mcrouter
data:
config.json: |
{
"pools": {{- $pools | toJson | replace "MissFailoverRoute|Pool|" "" -}},
"route": {
"type": "OperationSelectorRoute",
"default_policy": "AllMajorityRoute|Pool|pool00",
"operation_policies": {
"get": {
"type": "RandomRoute",
"children": {{- keys $pools | toJson }}
}
}
}
}
āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻ°ā§āĻ˛ āĻāĻāĻ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ:
# php -a
Interactive mode enabled
php > # ĐŅОвĐĩŅŅĐĩĐŧ СаĐŋиŅŅ и ŅŅĐĩĐŊиĐĩ
php > $m = new Memcached();
php > $m->addServer('mcrouter', 11211);
php > var_dump($m->set('test', 'value'));
bool(true)
php > var_dump($m->get('test'));
string(5) "value"
php > # РайОŅĐ°ĐĩŅ! ĐĸĐĩŅŅиŅŅĐĩĐŧ ŅайОŅŅ ŅĐĩŅŅиК:
php > ini_set('session.save_handler', 'memcached');
php > ini_set('session.save_path', 'mcrouter:11211');
php > var_dump(session_start());
PHP Warning: Uncaught Error: Failed to create session ID: memcached (path: mcrouter:11211) in php shell code:1
Stack trace:
#0 php shell code(1): session_start()
#1 {main}
thrown in php shell code on line 1
php > # ĐĐĩ СавОдиŅŅŅâĻ ĐĐžĐŋŅОйŅĐĩĐŧ СадаŅŅ session_id:
php > session_id("zzz");
php > var_dump(session_start());
PHP Warning: session_start(): Cannot send session cookie - headers already sent by (output started at php shell code:1) in php shell code on line 1
PHP Warning: session_start(): Failed to write session lock: UNKNOWN READ FAILURE in php shell code on line 1
PHP Warning: session_start(): Failed to write session lock: UNKNOWN READ FAILURE in php shell code on line 1
PHP Warning: session_start(): Failed to write session lock: UNKNOWN READ FAILURE in php shell code on line 1
PHP Warning: session_start(): Failed to write session lock: UNKNOWN READ FAILURE in php shell code on line 1
PHP Warning: session_start(): Failed to write session lock: UNKNOWN READ FAILURE in php shell code on line 1
PHP Warning: session_start(): Failed to write session lock: UNKNOWN READ FAILURE in php shell code on line 1
PHP Warning: session_start(): Unable to clear session lock record in php shell code on line 1
PHP Warning: session_start(): Failed to read session data: memcached (path: mcrouter:11211) in php shell code on line 1
bool(false)
php >
āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻĒāĻžāĻ ā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻā§āĻ¨āĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻŦā§ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ "
NB: āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻļā§āĻĄā§āĻ° ASCII āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻāĻŋ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻ§ā§āĻ°, āĻāĻŦāĻ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻā§ āĻšā§āĻ¯āĻžāĻļāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻĒāĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¨āĻžāĨ¤
āĻā§āĻļāĻ˛āĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§ āĻ°āĻ¯āĻŧā§āĻā§: āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ ASCII āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°āĻŦā§...āĨ¤ āĻ¤āĻŦā§ āĻāĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ¤ā§āĻ¤āĻ° āĻā§āĻāĻāĻžāĻ° āĻ
āĻā§āĻ¯āĻžāĻ¸
āĻšā§āĻ¯āĻžāĻ, āĻ¸āĻ āĻŋāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻ¨āĻžāĻŽ memcached.sess_binary_protocol
. āĻāĻāĻŋ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¯āĻžāĻ° āĻĒāĻ°ā§ āĻ¸ā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻžāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻŦā§āĨ¤ āĻ¯āĻž āĻ
āĻŦāĻļāĻŋāĻˇā§āĻ āĻĨāĻžāĻā§ āĻ¤āĻž āĻšāĻ˛ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĒāĻĄā§ mcrouter āĻ¸āĻš āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ°āĻžāĻāĻž!
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻāĻāĻžāĻŦā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§āĻāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¯āĻŧā§āĻāĻŋ: āĻŽā§āĻŽāĻā§āĻ¯āĻžāĻāĻĄ āĻĢāĻ˛ā§āĻ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻļā§ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻāĻŋ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻļāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ¯āĻŧāĻāĻž āĻĻāĻŋāĻ¯āĻŧā§āĻā§: āĻ¯āĻāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ āĻĨāĻžāĻā§, āĻ¤āĻāĻ¨ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻā§āĻ° āĻā§āĻŦāĻ¨ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻ¸āĻ°āĻ˛ā§āĻā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻšā§āĻ¯āĻžāĻ, āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ°āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻāĻāĻŋ "āĻā§āĻ°ā§āĻ¯āĻžāĻ" āĻāĻ° āĻŽāĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¯āĻĻāĻŋ āĻ āĻ°ā§āĻĨ āĻ¸āĻžāĻļā§āĻ°āĻ¯āĻŧ āĻāĻ°ā§, āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋāĻā§ āĻāĻŦāĻ° āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ā§āĻ° āĻāĻžāĻ°āĻŖ āĻ¨āĻž āĻāĻ°ā§ - āĻā§āĻ¨ āĻ¨āĻ¯āĻŧ?
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨:
- "āĻĄā§āĻ¯āĻžāĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻ
āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻāĻ°ā§āĻ¨" (āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§ symfony-āĻĄā§āĻŽā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§):
āĻ āĻāĻļ 1 (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž) иāĻĒāĻžāĻ°ā§āĻ 2 (āĻšā§āĻ˛āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž) ; - ÂĢ
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻŦāĻ¨ āĻĨā§āĻā§: āĻā§āĻāĻžāĻŦā§ HTTP āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸ā§āĻĒā§āĻ¨ā§āĻ¯āĻŧāĻĻā§āĻ° āĻĒāĻā§āĻˇā§ āĻāĻŋāĻ˛ āĻ¨āĻž Âģ.
āĻāĻ¤ā§āĻ¸: www.habr.com