рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХред рджреВрд╕рд░рд╛ рд╕рдиреНрдирд┐рдХрдЯрди

рдШреЛрд╖рдгрд╛


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



рдпрд╣ Erlang / Elixir рд╡рд┐рддрд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрдХреНрд░ рдХрд╛ рдЕрдВрддрд┐рдо рд▓реЗрдЦ рд╣реИред рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдиреАрдВрд╡ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░рд╛ рд▓реЗрдЦ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдкреИрдЯрд░реНрди рдФрд░ рддрдВрддреНрд░ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред


рдЖрдЬ рд╣рдо рдХреЛрдб рдмреЗрд╕ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдард╛рдПрдВрдЧреЗред


рд╕реЗрд╡рд╛ рд╕рдВрдЧрдарди


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


рд╕реНрдерд┐рддрд┐ рддрдм рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм рд╣рдореЗрдВ рдЧрд▓рддреА-рд╕рд╣рд┐рд╖реНрдгреБ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдмрджрд▓ рдЧрдИ рд╣реИрдВ:


  1. рдЕрдм рд╕реЗрд╡рд╛ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ 5 рдиреЛрдбреНрд╕ рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП,
  2. рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ,
  3. рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЕрдкрдбреЗрдЯ рд╕рджрд╕реНрдпрддрд╛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред

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


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


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


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


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


рдиреЗрддрд╛ рдХреА рдкрд╕рдВрдж


рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдПрдХ рдиреЗрддрд╛ рдХреА рдкрд╕рдВрдж рдПрдХ рд▓реЛрдб рдХреА рд╡рд┐рддрд░рд┐рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдПрдХрдорд╛рддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдпреБрдХреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред


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


рд╡рд┐рдирд┐рдордп рдмрд┐рдВрджреБ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрджреЗрд╢ #'$leader'{exchange = ?EXCHANGE, pid = LeaderPid, servers = Servers} ред рдпрджрд┐ LeaderPid рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ pid рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд▓реАрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ Servers рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдиреЛрдбреНрд╕ рдФрд░ рдЙрдирдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЬрдм рдПрдХ рдирдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рд╕реЗрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХ #'$slave_up'{exchange = ?EXCHANGE, pid = SlavePid, options = SlaveOpts} рдФрд░ #'$slave_down'{exchange = ?EXCHANGE, pid = SlavePid, options = SlaveOpts} рдХреНрд░рдорд╢рдГред


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдордп рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рдиреЗрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред


рдмрд┐рдЪреМрд▓рд┐рдпреЛрдВ


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


рдкрдм-рдЙрдк рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХреЛрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдЬреЛ рдЕрджреНрдпрддрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╛рдЬрд╛рд░ рдореВрд▓реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдПрдХ рдкрд╣реБрдВрдЪ рдкрд░рдд - рдПрди рд╕рд░реНрд╡рд░ рдЬреЛ рд╡реЗрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк "рдорд╛рдерд╛" рддрдп рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


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

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


рдПрдХреНрд╕реЗрд╕ рд▓реЗрдпрд░ рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдЪрд▓рд╛рдПрдВ, рдФрд░ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдПрдкреАрдЖрдИ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣рдорд╛рд░реА рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЗрд╕реЗ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░реЗрдВрдЧреА, рди рдХрд┐ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдореВрд▓ рдкрдм-рд╕рдм рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯред рдкреНрд░реЙрдХреНрд╕реА рдХреЗрд╡рд▓ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред
рдирддреАрдЬрддрди, рдХрд░реНрдиреЗрд▓ рдФрд░ рдПрдХреНрд╕реЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ 50,000 рдХреЗ рдмрдЬрд╛рдп 5 рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗред


рд░реВрдЯрд┐рдВрдЧ рдФрд░ рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ


рдЕрдиреБрд░реЛрдз-Resp


рд╡рд░реНрддрдорд╛рди рд╕рдВрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, 7 рдХреНрд╡реЗрд░реА рд╡рд┐рддрд░рдг рд░рдгрдиреАрддрд┐рдпрд╛рдБ рд╣реИрдВ:


  • default ред рдЕрдиреБрд░реЛрдз рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • round-robin ред рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Iterates рдФрд░ cyclically рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдиреБрд░реЛрдз рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • consensus ред рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдиреЗрддрд╛рдУрдВ рдФрд░ рдЕрдиреБрдпрд╛рдпрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдХреЗрд╡рд▓ рдиреЗрддрд╛ рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • consensus & round-robin ред рд╕рдореВрд╣ рдореЗрдВ рдПрдХ рдиреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдиреБрд░реЛрдз рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • sticky ред рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЧрдгрдирд╛ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдз рдЙрд╕реА рд╣реИрдВрдбрд▓рд░ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддреЗ рд╣реИрдВред
  • sticky-fun ред рдЬрдм рд╡рд┐рдирд┐рдордп рдмрд┐рдВрджреБ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ sticky рд╕рдВрддреБрд▓рди рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдЧрдгрдирд╛ рдлрд╝рдВрдХреНрд╢рди рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • fun ред рдпрд╣ рдЪрд┐рдкрдЪрд┐рдкрд╛-рдордЬрд╝рд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдк рдЗрд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рддрд░рдг рд░рдгрдиреАрддрд┐ рддрдм рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рд╡рд┐рдирд┐рдордп рдмрд┐рдВрджреБ рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИред


рд╕рдВрджреЗрд╢ рд╕реЗрд╡рд╛ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдк рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЯреИрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЯреИрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


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

рдкрдм рдЙрдк


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


рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдФрд░ рд▓рдЪреАрд▓рд╛рдкрди


рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдВрдкреВрд░реНрдгрддрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреА рдкрд░рддреЛрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреА рдорд╛рдкрдиреАрдпрддрд╛ рдХреА рдбрд┐рдЧреНрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ:


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

рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рд╕рд╛рджрдЧреА рдФрд░ рдЧрддрд┐ рдЕрдХреНрд╕рд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдлрд▓рддрд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕рдВрджреЗрд╢ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде рдмрдврд╝рддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 50-60 рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдореВрд╣ рди рд╣реЛ, рд▓реЗрдХрд┐рди рд╣рдо рдорд╣рд╛рд╕рдВрдШ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдорд╣рд╛рд╕рдВрдШ рдХрд╛ рд╡рд┐рд╖рдп рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред


рдЖрд░рдХреНрд╖рдг


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


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


рдЙрддреНрдкрд╛рджрдХрддрд╛


рдЪрд▓реЛ рдХрдо рд╕реЗ рдХрдо рд▓рдЧрднрдЧ рдЦрд░рдЧреЛрд╢ рдФрд░ рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдУрдкрдирд╕реНрдЯреИрдХ рдЯреАрдо рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЦрд░рдЧреЛрд╢ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдгрд╛рдо рдкрд╛рдпрд╛ред


рдЦрдгреНрдб рдореЗрдВ 6.14.1.2.1.2.2ред рдореВрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬ RPC CAST рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ:


рдкрд╣рд▓реЗ, рд╣рдо OS рдХрд░реНрдиреЗрд▓ рдпрд╛ рд╡реАрдПрдордВрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдкрд░реАрдХреНрд╖рдг рдХреА рд╕реНрдерд┐рддрд┐:


  • erl opts: + A1 + sbtuред
  • рдПрдХ рдПрдХрд▓ erlang рдиреЛрдб рдХреЗ рднреАрддрд░ рдкрд░реАрдХреНрд╖рдг рдореЛрдмрд╛рдЗрд▓ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдПрдХ рдкреБрд░рд╛рдиреЗ i7 рдХреЗ рд╕рд╛рде рдПрдХ рд▓реИрдкрдЯреЙрдк рдкрд░ рдЪрд▓рддрд╛ рд╣реИред
  • рдХреНрд▓рд╕реНрдЯрд░ рдкрд░реАрдХреНрд╖рдг 10G рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВред
  • рдХреЛрдб рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдиреЗрдЯ рдореЛрдб рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХред

рдЯреЗрд╕реНрдЯ рдХреЛрдб:


 req_resp_bench(_) -> W = perftest:comprehensive(10000, fun() -> messaging:request(?EXCHANGE, default, ping, self()), receive #'$msg'{message = pong} -> ok after 5000 -> throw(timeout) end end ), true = lists:any(fun(E) -> E >= 30000 end, W), ok. 

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


 Sequential 10000 cycles in ~0 seconds (26987 cycles/s) Sequential 20000 cycles in ~1 seconds (26915 cycles/s) Sequential 100000 cycles in ~4 seconds (26957 cycles/s) Parallel 2 100000 cycles in ~2 seconds (44240 cycles/s) Parallel 4 100000 cycles in ~2 seconds (53459 cycles/s) Parallel 10 100000 cycles in ~2 seconds (52283 cycles/s) Parallel 100 100000 cycles in ~3 seconds (49317 cycles/s) 

рдкрд░рд┐рджреГрд╢реНрдп 2 : 3 рдиреЛрдбреНрд╕ (NAT) рдХреЗ рддрд╣рдд рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрдиреЛрдВ рдкрд░ рдЪрд▓ рд░рд╣реЗ рдиреЛрдбреНрд╕ред


 Sequential 10000 cycles in ~1 seconds (8684 cycles/s) Sequential 20000 cycles in ~2 seconds (8424 cycles/s) Sequential 100000 cycles in ~12 seconds (8655 cycles/s) Parallel 2 100000 cycles in ~7 seconds (15160 cycles/s) Parallel 4 100000 cycles in ~5 seconds (19133 cycles/s) Parallel 10 100000 cycles in ~4 seconds (24399 cycles/s) Parallel 100 100000 cycles in ~3 seconds (34517 cycles/s) 

рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, CPU рдЙрдкрдпреЛрдЧ 250% рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдерд╛


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


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


рдлреЛрдЯреЛ @chuttersnap рджреНрд╡рд╛рд░рд╛

Source: https://habr.com/ru/post/hi446344/


All Articles