рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

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

рд╢реБрдн рд╕рдорд╛рдЪрд╛рд░: рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣реА рдареВрд▓рд╛ рд╢рдЯрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реЗрдХрд╛ рдЫреМрдВ (рдЬрд╕реНрддреИ [2], [3]) рд░ рдЕрд░реНрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдпреЛ рдЬрд╕рд▓реЗ рдпрд╕ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рдорд╛рдзрд╛рдирд▓рд╛рдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреЗрдЫред

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

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

рд╣рд╛рдореАрд╕рдБрдЧ рдЯрд╛рд░рд╛рдиреНрдЯреБрд▓рд╛ рдЫ, рд╣рд╛рдореАрд╕рдБрдЧ vshard рдЫ - рддрдкрд╛рдИрдВ рдЕрд░реВ рдХреЗ рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ?

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

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

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

рд╣рд╛рдореАрд▓реЗ рдпреА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдмрд╛рд░рдореНрдмрд╛рд░ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдпреМрдВ, рд░ рдХреЗрд╣реА рдмрд┐рдиреНрджреБрдорд╛ рд╣рд╛рдореАрд▓реЗ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдпреМрдВ рдЬрд╕рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рдпрд╕рдХреЛ рд╕рдореНрдкреВрд░реНрдг рдЬреАрд╡рди рдЪрдХреНрд░рдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рд░рд▓ рдмрдирд╛рдпреЛ: рд╕рд┐рд░реНрдЬрдирд╛, рд╡рд┐рдХрд╛рд╕, рдкрд░реАрдХреНрд╖рдг, CI/CD, рдорд░реНрдорддрд╕рдореНрднрд╛рд░ред

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

Tarantool рдХрд╛рд░рддреВрд╕ рдХреЛ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ:

  • рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдЖрд░реНрдХреЗрд╕реНрдЯреНрд░рд╛;
  • рдирдпрд╛рдБ рднреВрдорд┐рдХрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджреИ;
  • рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡реЗрджрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ;
  • рдирд┐рд░реНрдорд┐рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╢рд╛рд░реНрдбрд┐рдВрдЧ;
  • Luatest рдкрд░реАрдХреНрд╖рдг рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрдЧ рдПрдХреАрдХрд░рдг;
  • WebUI рд░ API рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди;
  • рдкреНрдпрд╛рдХреЗрдЬрд┐рдЩреНрдЧ рд░ рддреИрдирд╛рддреА рдЙрдкрдХрд░рдгрд╣рд░реВред

рдирдорд╕реНрдХрд╛рд░ рд╕рдВрд╕рд╛рд░!

рдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдлреИ рджреЗрдЦрд╛рдЙрди рдкрд░реНрдЦрди рд╕рдХреНрджрд┐рди, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдкрдЫрд┐рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХрдерд╛ рдЫреЛрдбреНрдиреЗрдЫреМрдВ рд░ рдХреЗрд╣рд┐ рд╕рд░рд▓рд╕рдБрдЧ рд╕реБрд░реВ рдЧрд░реНрдиреЗрдЫреМрдВред рдпрджрд┐ рд╣рд╛рдореА рдорд╛рдиреНрджрдЫреМрдВ рдХрд┐ рдЯрд╛рд░рдиреНрдЯреБрд▓ рдЖрдлреИрдВ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕реНрдерд╛рдкрд┐рдд рдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдмрд╛рдБрдХреА рд╕рдмреИ рдЧрд░реНрди рдЫ

$ 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-router рд░ vshard-storage рдердкреНрдЫреМрдВред рди рдд рдЧреЗрдЯрд╡реЗ рди рдд рдЕрдиреБрд╕реВрдЪрдХрд▓реЗ рднрдгреНрдбрд╛рд░рдгрдорд╛ рд╕рд┐рдзреИ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреЗрдЫ; рд░рд╛рдЙрдЯрд░ рддреНрдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛ, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╣реЛред

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

рдпреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд▓реЗ рдЕрдЭреИ рдкрдирд┐ рд╣рд╛рдореАрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдХреБрд░рд╛рд▓рд╛рдИ рдареНрдпрд╛рдХреНрдХреИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрджреИрди рдХрд┐рдирднрдиреЗ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдЕрдореВрд░реНрдд рджреЗрдЦрд┐рдиреНрдЫрдиреНред рд╣рд╛рдореАрд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдпреЛ рд╣реЗрд░реНрдиреБ рдкрд░реНрдЫ рдХрд┐ рдпреЛ рдХрд╕рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯрд╛рд░рдиреНрдЯреБрд▓рдорд╛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рд╣реБрдиреЗрдЫ - рдкреНрд░рдХреНрд░рд┐рдпрд╛рджреНрд╡рд╛рд░рд╛ рд╣рд╛рдореНрд░рд╛ рдШрдЯрдХрд╣рд░реВрд▓рд╛рдИ рд╕рдореВрд╣рдмрджреНрдз рдЧрд░реМрдВред

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

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

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

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

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

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

рдЯреЛрдкреЛрд▓реЛрдЬреА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рдХреБрди рднреВрдорд┐рдХрд╛рд╣рд░реВ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрддреИ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рд╣реБрдиреБрдкрд░реНрдЫред рд░ рдпреЛ "рдХрд╣реАрдБ" рд╡рд┐рддрд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╣реЛ, рдЬреБрди рдореИрд▓реЗ рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реЗрдХреЛ рдЫреБред рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдЯреЛрдкреЛрд▓реЛрдЬреА рд╣реЛред рдпрд╣рд╛рдБ 3 Tarantool рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ 5 рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рдореВрд╣рд╣рд░реВ рдЫрдиреН:

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

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

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

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

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

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

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

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

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

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

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

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

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

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

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

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

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

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

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

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

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

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

рд╕реНрдерд╛рдкрд┐рдд рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рд▓рдЧрднрдЧ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ: рджреБрдмреИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд░ рд╕реНрдерд╛рдкрд┐рдд рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВред Tarantool рдкрдирд┐ RPM рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рдирд┐рд░реНрднрд░рддрд╛рдХреЛ рд░реВрдкрдорд╛ рд╕рд░реНрднрд░рдорд╛ рдЖрдЗрдкреБрдЧреНрдЫ, рд░ рд╣рд╛рдореНрд░реЛ рд╕реЗрд╡рд╛ рд╕реБрд░реБ рдЧрд░реНрди рддрдпрд╛рд░ рдЫред рдпреЛ systemd рдорд╛рд░реНрдлрдд рдЧрд░рд┐рдиреНрдЫ, рддрд░ рдкрд╣рд┐рд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рд╕рд╛рдиреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд▓реЗрдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдиреНрдпреВрдирддрдордорд╛, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ URI рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА рддреАрди рдкрд░реНрдпрд╛рдкреНрдд рдЫред

$ 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

рдпрд╣рд╛рдБ рдПрдХ рд░реЛрдЪрдХ nuance рдЫред рдХреЗрд╡рд▓ рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЯреЛрдХрд▓ рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рд╣рд╛рдореА рд╣реЛрд╕реНрдЯрдирд╛рдо рд╕рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рдореНрдкреВрд░реНрдг рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдареЗрдЧрд╛рдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫреМрдВред рдпреЛ рдЖрд╡рд╢реНрдпрдХ рдЫ рддрд╛рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбрд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдЬрд╛рдиреНрджрдЫрдиреНред advertise_uri рдареЗрдЧрд╛рдирд╛рдХреЛ рд░реВрдкрдорд╛ 0.0.0.0 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдирд░рд╛рдореНрд░реЛ рд╡рд┐рдЪрд╛рд░ рд╣реЛ; рдпреЛ рд╕рдХреЗрдЯ рдмрд╛рдЗрдиреНрдб рд╣реЛрдЗрди, рдмрд╛рд╣реНрдп IP рдареЗрдЧрд╛рдирд╛ рд╣реБрдиреБрдкрд░реНрдЫред рдпреЛ рдмрд┐рдирд╛, рдХреЗрд╣рд┐ рдкрдирд┐ рдХрд╛рдо рдЧрд░реНрджреИрди, рддреНрдпрд╕реИрд▓реЗ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬрд▓реЗ рддрдкрд╛рдИрд▓рд╛рдИ рдЧрд▓рдд advertise_uri рдХреЛ рд╕рд╛рде рдиреЛрдб рд╕реБрд░реБ рдЧрд░реНрди рджрд┐рджреИрдиред

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

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

рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛, рд╣рд╛рдореАрд▓реЗ HTTP рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрдХрд╛ рдЫреМрдВ рдЬрд╕рдорд╛ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬрд▓реЗ рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╕реЗрд╡рд╛ рдЧрд░реНрджрдЫ - 8080ред рдпрд╕рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН рд░ рдПрдХ рдирдЬрд░ рд╣реЗрд░реМрдВ:

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

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

рддрдкрд╛рдИрдВрдХреЛ рдордирдкрд░реНрдиреЗ рдкреЗрдпрдХреЛ рдЧрд┐рд▓рд╛рд╕ рдЦрдиреНрдпрд╛рдФрдВ рд░ рд▓рд╛рдореЛ рдХрд╛рдо рд╣рдкреНрддрд╛ рдкрдЫрд┐ рдЖрд░рд╛рдо рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдЯрд╛рд░рдиреНрдЯреБрд▓ рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ: рд▓реБрдЖ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд▓рд╛рдИ рддреАрди рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдХрд╛рдЯреНрджреИ

рдкрд░рд┐рдгрд╛рдорд╣рд░реВ

рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдХреЗ рдЫрдиреН? рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЫреЛрдбреНрдиреБрд╣реЛрд╕реН, Github рдорд╛ рдЯрд┐рдХрдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕рдиреНрджрд░реНрдн

[1] Tarantool ┬╗ 2.2 ┬╗ рд╕рдиреНрджрд░реНрдн ┬╗ рдЪрдЯреНрдЯрд╛рди рд╕рдиреНрджрд░реНрдн ┬╗ рдореЛрдбреНрдпреБрд▓ vshard

[2] рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА Tarantool рдорд╛ рдЖрдзрд╛рд░рд┐рдд Alfa-Bank рдХреЛ рд▓рдЧрд╛рдиреА рд╡реНрдпрд╡рд╕рд╛рдпрдХреЛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдпреМрдВ

[3] рдирдпрд╛рдБ рдкреБрд╕реНрддрд╛рдХреЛ рдмрд┐рд▓рд┐рдЩ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛: рдЯреНрд░рд╛рдиреНрдЯреЛрд▓рдорд╛ рдЯреНрд░рд╛рдиреНрдЬрд┐рд╕рдирдХреЛ рд╕рд╛рде рд░реВрдкрд╛рдиреНрддрд░рдг

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

[5] GitHub - tarantool/cartridge-cli

[6] GitHub - tarantool/cartridge

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди