рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

Mail.ru рдЧреНрд░реБрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЯрд╛рд░рдирдЯреВрд▓ рд╣реИ - рдпрд╣ рд▓реБрдЖ рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд?)ред рдпрд╣ рддреЗрдЬрд╝ рдФрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдЕрднреА рднреА рдЕрд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рднреА рд░рд╛рдордмрд╛рдг рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯрд╛рд░рдирдЯреВрд▓ рдХреЗ рдкрд╛рд╕ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╣реИрдВ - рд╡реАрдПрд╕рд╣рд╛рд░реНрдб рдореЙрдбреНрдпреВрд▓ [1]. рдпрд╣ рдЖрдкрдХреЛ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдбреЗрдЯрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдиреА рд╣реЛрдЧреАред

рдЕрдЪреНрдЫреА рдЦрдмрд░: рд╣рдордиреЗ рдХреБрдЫ рдмрдбрд╝реЗ рд╢реЙрдЯреНрд╕ рдПрдХрддреНрд░ рдХрд┐рдП рд╣реИрдВ (рдЬреИрд╕реЗ [2], [3]) рдФрд░ рдПрдХ рдФрд░ рдврд╛рдВрдЪрд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдмрдирд╛ рджреЗрдЧрд╛ред

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдЬрдЯрд┐рд▓ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдврд╛рдВрдЪрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдврд╛рдВрдЪрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ?

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╢рд╛рд░реНрдб рд╣реИ - рдЖрдкрдХреЛ рдФрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП?

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдмрд╛рдд рд╣реИ. vshard рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ Lua рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХрд╛рдзрд┐рдХ рдЯрд╛рд░рдирдЯреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣рд░ рдЬрдЧрд╣ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЛрдИ рднреА рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛. рдЗрд╕рд▓рд┐рдП, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЕрдиреНрд╕рд┐рдмрд▓ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рд╕реНрд╡рдпрдВ vshard рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд░рддрд╛ рд╣реИ рд╕реНрд╡рдпрдВ рдХрд╛ рд╡рд┐рддрд░рд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕. рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг YAML рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕рдХреА рдПрдХ рдкреНрд░рддрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рд░рдирдЯреВрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИред рд╕рд░рд▓реАрдХрд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рд╕рдорд╛рди рд╣реИред

рджреВрд╕рд░реЗ, рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред vshard рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЙрд╕рдХреЗ рдХрд╛рдо рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬрдм рд╣рдо рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдХреНрд╕рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдФрд░ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ 3 рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЬрд▓реНрджрдмрд╛рдЬреА рд╣реЛрдЧреАред

рд╣рдордиреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рд╣рд▓ рдХрд┐рдпрд╛, рдФрд░ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рд╣рдо рдПрдХ рдРрд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рдЬрд┐рд╕рдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЙрд╕рдХреЗ рдкреВрд░реЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛: рдирд┐рд░реНрдорд╛рдг, рд╡рд┐рдХрд╛рд╕, рдкрд░реАрдХреНрд╖рдг, рд╕реАрдЖрдИ/рд╕реАрдбреА, рд░рдЦрд░рдЦрд╛рд╡ред

рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рд░рдирдЯреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рднреВрдорд┐рдХрд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред рднреВрдорд┐рдХрд╛рдПрдБ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рднреА рднреВрдорд┐рдХрд╛рдПрдБ рдПрдХ рдЯрд╛рд░рдирдЯреВрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рдЪрд▓рд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдпрд╣ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧреАред

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

  • рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди;
  • рдирдИ рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛;
  • рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ;
  • рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╢рд╛рд░реНрдбрд┐рдВрдЧ;
  • рд▓реБрдПрдЯреЗрд╕реНрдЯ рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг;
  • рд╡реЗрдмрдпреВрдЖрдИ рдФрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдмрдВрдзрди;
  • рдкреИрдХреЗрдЬрд┐рдВрдЧ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЙрдкрдХрд░рдгред

рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛!

рдореИрдВ рд╕реНрд╡рдпрдВ рд░реВрдкрд░реЗрдЦрд╛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдиреА рдмрд╛рдж рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рдХреБрдЫ рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рд╣рдо рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЯрд╛рд░рдирдЯреВрд▓ рд╕реНрд╡рдпрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ

$ tarantoolctl rocks install cartridge-cli
$ export PATH=$PWD/.rocks/bin/:$PATH

рдпреЗ рджреЛ рдХрдорд╛рдВрдб рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЖрдкрдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗ:

$ cartridge create --name myapp

рдФрд░ рдпрд╣реА рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

myapp/
тФЬтФАтФА .git/
тФЬтФАтФА .gitignore
тФЬтФАтФА app/roles/custom.lua
тФЬтФАтФА deps.sh
тФЬтФАтФА init.lua
тФЬтФАтФА myapp-scm-1.rockspec
тФЬтФАтФА test
тФВ   тФЬтФАтФА helper
тФВ   тФВ   тФЬтФАтФА integration.lua
тФВ   тФВ   тФФтФАтФА unit.lua
тФВ   тФЬтФАтФА helper.lua
тФВ   тФЬтФАтФА integration/api_test.lua
тФВ   тФФтФАтФА unit/sample_test.lua
тФФтФАтФА tmp/

рдпрд╣ рд░реЗрдбреАрдореЗрдб "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб!" рдХреЗ рд╕рд╛рде рдПрдХ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИред рдЖрд╡реЗрджрди рдкрддреНрд░ред рдЖрдЗрдП рдкрд╣рд▓реЗ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ (рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рд╣рд┐рдд) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рддреБрд░рдВрдд рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

$ tarantoolctl rocks make
$ ./init.lua --http-port 8080

рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╢рд╛рд░реНрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдЖрдо рдЖрджрдореА рддреБрд░рдВрдд рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ, рдорд╛рдЙрд╕ рд╕реЗ рдПрдХ рдиреЛрдб рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдЖрдирдВрдж рд▓реЗрдирд╛ рдЬрд▓реНрджрдмрд╛рдЬреА рд╣реЛрдЧреАред рдЕрдм рддрдХ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рддреИрдирд╛рддреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред

рдПрдкреНрд▓реАрдХреЗрд╢рди рдХрд╛ рд╡рд┐рдХрд╛рд╕

рдЬрд╝рд░рд╛ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рд╣рдо рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрд╕реЗ рд╕рд╣реЗрдЬрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рджрд┐рди рдореЗрдВ рдПрдХ рдмрд╛рд░ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреА рд╣реЛрдЧреАред

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рд╣рдо рдПрдХ рдЖрд░реЗрдЦ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд░ рддреАрди рдШрдЯрдХ рд░рдЦрддреЗ рд╣реИрдВ: рдЧреЗрдЯрд╡реЗ, рд╕реНрдЯреЛрд░реЗрдЬ рдФрд░ рд╢реЗрдбреНрдпреВрд▓рд░ред рд╣рдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдЖрдЧреЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред' рдЪреВрдБрдХрд┐ рд╣рдо vshard рдХреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рд╕реНрдХреАрдо рдореЗрдВ vshard-рд░рд╛рдЙрдЯрд░ рдФрд░ vshard-рд╕реНрдЯреЛрд░реЗрдЬ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рди рддреЛ рдЧреЗрдЯрд╡реЗ рдФрд░ рди рд╣реА рд╢реЗрдбреНрдпреВрд▓рд░ рд╕реАрдзреЗ рд╕реНрдЯреЛрд░реЗрдЬ рддрдХ рдкрд╣реБрдВрдЪ рдкрд╛рдПрдЧрд╛; рд░рд╛рдЙрдЯрд░ рдЗрд╕реА рдХреЗ рд▓рд┐рдП рд╣реИ, рдЗрд╕реА рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рдпрд╣ рдЖрд░реЗрдЦ рдЕрднреА рднреА рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдпрд╣ рдирд╣реАрдВ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдШрдЯрдХ рдЕрдореВрд░реНрдд рджрд┐рдЦрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЕрднреА рднреА рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯрд╛рд░рдирдЯреВрд▓ рдкрд░ рдХреИрд╕реЗ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдЖрдЗрдП рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореВрд╣рд┐рдд рдХрд░реЗрдВред

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

vshard-рд░рд╛рдЙрдЯрд░ рдФрд░ рдЧреЗрдЯрд╡реЗ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд╛рдЙрдЯрд░ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ рддреЛ рд╣рдореЗрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд░реНрдл рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрд░реНрдерд╛рддреН, рдЧреЗрдЯрд╡реЗ рдФрд░ vshard.router.cfg рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбрд┐рдЬрд╝рд╛рдЗрди рдЪрд░рдг рдореЗрдВ, рддреАрди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЯрд╛рд░реНрдирд╛рдЯреВрд▓ рдХреЗ рддреАрди рдЙрджрд╛рд╣рд░рдг рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ред рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдФрд░ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЧреЗрдЯрд╡реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИред рдпрд╛ рд╢рд╛рдпрдж рдореИрдВ рдЕрдкрдиреЗ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдореБрдЭреЗ рддреАрди рдкреНрд░рддрд┐рдпрд╛рдБ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдкрд░реЗрд╢рд╛рдиреА рдХреНрдпреЛрдВ рдЙрдард╛рдиреА рдЪрд╛рд╣рд┐рдП? рдЗрд╕ рдкреНрд░рдХрд╛рд░ рднреВрдорд┐рдХрд╛рдУрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖред рдПрдХ рднреВрдорд┐рдХрд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рд▓реБрдЖрд╢ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдЪрд╛рд░ рд╣реИрдВ - рдЧреЗрдЯрд╡реЗ, рд░рд╛рдЙрдЯрд░, рд╕реНрдЯреЛрд░реЗрдЬ, рд╢реЗрдбреНрдпреВрд▓рд░ред рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдФрд░ рднреА рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ. рд╕рднреА рднреВрдорд┐рдХрд╛рдПрдБ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЪрд▓рд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рдФрд░ рдЬрдм рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдпрд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рддреИрдирд╛рддреА рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рд╣рдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЯрд╛рд░рдирдЯреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдЕрдкрдирд╛ рд╕реЗрдЯ рд╕реМрдВрдкреЗрдВрдЧреЗ:

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рдЯреЛрдкреЛрд▓реЙрдЬреА рдкреНрд░рдмрдВрдзрди

рдХреМрди рд╕реА рднреВрдорд┐рдХрд╛рдПрдБ рдХрд╣рд╛рдБ рдЪрд▓ рд░рд╣реА рд╣реИрдВ, рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣ "рдХрд╣реАрдВ" рд╡рд┐рддрд░рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдХреНрд▓рд╕реНрдЯрд░ рдЯреЛрдкреЛрд▓реЙрдЬреА рд╣реИред рдпрд╣рд╛рдВ 3 рдЯрд╛рд░рдирдЯреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ 5 рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рдореВрд╣ рд╣реИрдВ:

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рд╣рдо рдбреЗрдЯрд╛ рдЦреЛрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рджреЛ-рдЪрд░рдг рдХрдорд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдФрд░ рдирдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж рджреВрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рднрд▓реЗ рд╣реА рдПрдХ рдкреНрд░рддрд┐ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдП, рдХреБрдЫ рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрд╕ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЯреЛрдкреЛрд▓реЙрдЬреА рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рдореВрд╣ рдХреЗ рдиреЗрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреИрд░рд╛рдореАрдЯрд░ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рд╡рд╣ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реИ рдЬрд┐рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдмрд╛рдХреА рдЕрдХреНрд╕рд░ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдЕрдкрд╡рд╛рдж рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдмрд╣рд╛рджреБрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдВрдШрд░реНрд╖реЛрдВ рд╕реЗ рдбрд░рддреЗ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдСрдкрд░реЗрд╢рди рдРрд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ, рдЪрд╛рд╣реЗ рдХреБрдЫ рднреА рд╣реЛ, рджреЛ рдмрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрддрд╛ рдХреА рдирд┐рд╢рд╛рдиреА рд╣реИ.

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдЬреАрд╡рди

рдРрд╕реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдПрдХ рдЕрдореВрд░реНрдд рднреВрдорд┐рдХрд╛ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП, рдврд╛рдВрдЪреЗ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЯрд╛рд░рдирдЯреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рдпрдВрддреНрд░рдг рд╣реЛрддрд╛ рд╣реИред рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 4 рдХреЙрд▓рдмреИрдХ рд╣реИрдВред рд╡рд┐рддрд░рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЬреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рд╕реНрд╡рдпрдВ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднреВрдорд┐рдХрд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред

function init()
function validate_config()
function apply_config()
function stop()

рдкреНрд░рддреНрдпреЗрдХ рднреВрдорд┐рдХрд╛ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реЛрддрд╛ рд╣реИ init. рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рддреЛ рдЬрдм рднреВрдорд┐рдХрд╛ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИ рдпрд╛ рдЬрдм рдЯрд╛рд░рдирдЯреВрд▓ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣рд╛рдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреЙрдХреНрд╕.рд╕реНрдкреЗрд╕.рдХреНрд░рд┐рдПрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛, рдпрд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреБрдЫ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдлрд╛рдЗрдмрд░ рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдПрдХ рдХрд╛рд░реНрдп init рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛. рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рддрд░рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдЙрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрдиреБрднрд╛рдЧ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рд╢реЗрдбреНрдпреВрд▓рд░ рднреВрдорд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрдХреАрдорд╛ рдпрд╛ рд╢реЗрдбреНрдпреВрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрд▓ validate_config ╨╕ apply_config рд╣рд░ рдмрд╛рд░ рд╡рд┐рддрд░рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЛ-рдЪрд░рдг рдХрдорд┐рдЯ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрд▓рд╕реНрдЯрд░ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рднреВрдорд┐рдХрд╛ рдЗрд╕ рдирдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ рдФрд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЬрдм рд╣рд░ рдХреЛрдИ рд╕рд╣рдордд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рддреЛ apply_config.

рднреВрдорд┐рдХрд╛рдУрдВ рдХреА рднреА рдПрдХ рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИ stop, рдЬреЛ рднреВрдорд┐рдХрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрджрд┐ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдм рд╢реЗрдбреНрдпреВрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЙрди рдлрд╛рдЗрдмрд░ рдХреЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирд╕реЗ рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рд╣реБрдИ рдереА init.

рднреВрдорд┐рдХрд╛рдПрдБ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рд╣рдо рд▓реБрдЖ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЖрджреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╡рд╣ рднреВрдорд┐рдХрд╛ рди рд╣реЛ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХреЙрд▓ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрд░рдкреАрд╕реА (рд░рд┐рдореЛрдЯ рдкреНрд░реЛрд╕реАрдЬрд░ рдХреЙрд▓) рд╕рд╣рд╛рдпрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЯрд╛рд░рдирдЯреВрд▓ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдорд╛рдирдХ рдиреЗрдЯрдмреЙрдХреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХрд╛ рдЧреЗрдЯрд╡реЗ рдПрдХ рджрд┐рди рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ рд╢реЗрдбреНрдпреВрд▓рд░ рд╕реЗ рдХрд╛рдо рдЕрднреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

рдПрдХ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рджреЛрд╖ рд╕рд╣рдирд╢реАрд▓рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИред рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП SWIM рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ [4]. рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдпреВрдбреАрдкреА рдкрд░ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде "рдЕрдлрд╡рд╛рд╣реЛрдВ" рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ - рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкрдиреЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рдирд╡реАрдирддрдо рд╕рдорд╛рдЪрд╛рд░ рдмрддрд╛рддреА рд╣реИ, рдФрд░ рд╡реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдЕрдЪрд╛рдирдХ рдЙрддреНрддрд░ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рдЯрд╛рд░рдирдЯреВрд▓ рдХреЛ рд╕рдВрджреЗрд╣ рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рдФрд░ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд╡рд╣ рдореГрддреНрдпреБ рдХрд╛ рдкрд╛рда рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд╛рдЪрд╛рд░ рдЖрд╕рдкрд╛рд╕ рдХреЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рдлрд▓рддрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдиреЗрддрд╛ рдЕрдЪрд╛рдирдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдкреНрд░рддрд┐рдХреГрддрд┐ рдЙрд╕рдХреА рднреВрдорд┐рдХрд╛ рд▓реЗ рд╕рдХрддреА рд╣реИ, рдФрд░ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдЪрд▓ рд░рд╣реА рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рд░-рдмрд╛рд░ рдЖрдЧреЗ-рдкреАрдЫреЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛ рдЯрдХрд░рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдиреЗрддрд╛ рдХреЗ рдмрд╣рд╛рд▓ рд╣реЛрдиреЗ рдФрд░ рдЙрд╕реЗ рддрд╛рдЬ рд╡рд╛рдкрд╕ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рддрд┐рдХреГрддрд┐ рдирд╣реАрдВ рдЯреВрдЯреЗрдЧреАред

рдЗрд╕ рд╕рдм рд╕реЗ, рдЖрдкрдХреЛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рднреВрдорд┐рдХрд╛рдПрдБ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдПрдХ рдЕрд░реНрде рдореЗрдВ, рд╡реЗ рдмрд╕ рдЯрд╛рд░рдирдЯреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдВрджрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реА рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХрдИ рдореВрд▓рднреВрдд рдЕрдВрддрд░ рднреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рднреВрдорд┐рдХрд╛рдПрдБ рдПрдХ рд╣реА рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рд░рд╣рдиреА рдЪрд╛рд╣рд┐рдПред рдФрд░ рд╕рднреА рдЯрд╛рд░рдирдЯреВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рдХреЛрдб рдмреЗрд╕ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдЬрдм рд╣рдо рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рди рд╣реЛ, рд▓реЗрдХрд┐рди рдпрд╣ рдореМрдЬреВрдж рд╣реА рдирд╣реАрдВ рд╣реИред рд╕рд╛рде рд╣реА, рдЖрдкрдХреЛ рдХреЛрдб рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдФрд░ рдбреАрдмрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдбреЙрдХрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рднреВрдорд┐рдХрд╛ "рдЫрд╡рд┐" рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ, рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╢реАрди рдкрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реА рднреВрдорд┐рдХрд╛рдПрдБ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рддрд░рд╣ рдЕрд▓рдЧ-рдерд▓рдЧ рдирд╣реАрдВ рд╣реИрдВред рд╕рд╛рде рд╣реА, рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рджреЛ рд╕рдорд╛рди рднреВрдорд┐рдХрд╛рдПрдБ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗред рдПрдХ рднреВрдорд┐рдХрд╛ рдпрд╛ рддреЛ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ рд╣реИ; рдПрдХ рдЕрд░реНрде рдореЗрдВ, рдпрд╣ рдПрдХрд▓ рд╣реИред рдФрд░ рддреАрд╕рд░рд╛, рдкреВрд░реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рдореВрд╣ рдХреЗ рднреАрддрд░ рднреВрдорд┐рдХрд╛рдПрдБ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдпрд╣ рдмреЗрддреБрдХрд╛ рд╣реЛрдЧрд╛ - рдбреЗрдЯрд╛ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЕрд▓рдЧ рд╣реИред

рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЙрдкрдХрд░рдг

рдореИрдВрдиреЗ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдХрд┐ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЛрдВ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдлреНрд░реЗрдорд╡рд░реНрдХ RPM рдкреИрдХреЗрдЬ рдкреИрдХреЗрдЬ рдХрд░рддрд╛ рд╣реИ:

$ cartridge pack rpm myapp -- ╤Г╨┐╨░╨║╤Г╨╡╤В ╨┤╨╗╤П ╨╜╨░╤Б ./myapp-0.1.0-1.rpm
$ sudo yum install ./myapp-0.1.0-1.rpm

рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдореЗрдВ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рдХреА рд▓рдЧрднрдЧ рд╕рднреА рдЪреАрдЬрд╝реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХреА рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рджреЛрдиреЛрдВред рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рд░рдирдЯреВрд▓ рднреА рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣реБрдВрдЪреЗрдЧрд╛, рдФрд░ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдпрд╣ systemd рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдХрдо рд╕реЗ рдХрдо, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдпреВрдЖрд░рдЖрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреАрди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ.

$ sudo tee /etc/tarantool/conf.d/demo.yml <<CONFIG
myapp.router: {"advertise_uri": "localhost:3301", "http_port": 8080}
myapp.storage_A: {"advertise_uri": "localhost:3302", "http_enabled": False}
myapp.storage_B: {"advertise_uri": "localhost:3303", "http_enabled": False}
CONFIG

рдпрд╣рд╛рдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИ. рдХреЗрд╡рд▓ рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рд╣реЛрд╕реНрдЯрдирд╛рдо рд╕рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдВрдкреВрд░реНрдг рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреЛ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рдЬреБрдбрд╝рдирд╛ рд╣реИред рд╡рд┐рдЬреНрдЮрд╛рдкрди_рдпреВрд░реА рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ 0.0.0.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ; рдпрд╣ рдПрдХ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕реЙрдХреЗрдЯ рдмрд╛рдЗрдВрдб рдирд╣реАрдВред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдЖрдкрдХреЛ рдЧрд▓рдд рд╡рд┐рдЬреНрдЮрд╛рдкрди_рдпреВрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдиреЛрдб рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрдЧрд╛ред

рдЕрдм рдЬрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддреИрдпрд╛рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд┐рд╕реНрдЯрдордбреА рдЗрдХрд╛рдИ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдерд╛рдХрдерд┐рдд рджреНрд╡рд╛рд░рд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдЗрдХрд╛рдЗрдпрд╛рдБ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ:

$ sudo systemctl start myapp@router
$ sudo systemctl start myapp@storage_A
$ sudo systemctl start myapp@storage_B

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рд╣рдордиреЗ HTTP рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░реЛрд╕рддрд╛ рд╣реИ - 8080ред рдЖрдЗрдП рдЗрд╕ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рд╛рд▓рд╛рдБрдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдЪрд▓ рд░рд╣реА рд╣реИрдВ, рдлрд┐рд░ рднреА рд╡реЗ рдЕрднреА рддрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИрдВред рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдХреЛ рдЕрднреА рддрдХ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕реЗ рдХрд┐рд╕рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡рд╣ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреНрдпрд╛рджрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВ: рдПрдХ рдирдП рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЬреАрд╡рди рдкрд╣рд▓реЗ рдиреЛрдб рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдЙрдиреНрд╣реЗрдВ рднреВрдорд┐рдХрд╛рдПрдБ рд╕реМрдВрдкреЗрдВрдЧреЗ, рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рддреИрдирд╛рддреА рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдкреЗрдп рдХрд╛ рдПрдХ рдЧрд┐рд▓рд╛рд╕ рдбрд╛рд▓реЗрдВ рдФрд░ рд▓рдВрдмреЗ рдХрд╛рд░реНрдп рд╕рдкреНрддрд╛рд╣ рдХреЗ рдмрд╛рдж рдЖрд░рд╛рдо рдХрд░реЗрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.

рдЯрд╛рд░рдирдЯреВрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреИрдХрдПрдВрдб рдХреЛ рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛

рдкрд░рд┐рдгрд╛рдо

рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИрдВ? рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдлреАрдбрдмреИрдХ рдЫреЛрдбрд╝реЗрдВ, рдЬреАрдердм рдкрд░ рдЯрд┐рдХрдЯ рдмрдирд╛рдПрдВред

рд╕рдВрджрд░реНрднреЛрдВ

[1] рдЯрд╛рд░рдирдЯреВрд▓ ┬╗ 2.2 ┬╗ рд╕рдВрджрд░реНрдн ┬╗ рдЪрдЯреНрдЯрд╛рдиреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн ┬╗ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдорд╣рд╛рд░реНрдб

[2] рд╣рдордиреЗ рдЯрд╛рд░рдирдЯреВрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд▓реНрдлрд╝рд╛-рдмреИрдВрдХ рдХреЗ рдирд┐рд╡реЗрд╢ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рдореВрд▓ рдХреЛ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛

[3] рдирдИ рдкреАрдврд╝реА рдХреА рдмрд┐рд▓рд┐рдВрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛: рдЯрд╛рд░рдирдЯреВрд▓ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрди

[4] SWIM - рдХреНрд▓рд╕реНрдЯрд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓

[5] GitHub - рдЯрд╛рд░рдирдЯреВрд▓/рдХрд╛рд░рддреВрд╕-рд╕реАрдПрд▓рдЖрдИ

[6] GitHub - рдЯрд╛рд░рдирдЯреВрд▓/рдХрд╛рд░рддреВрд╕

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ