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

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

рд╕рд╣рдХрд╛рд▒реНрдпрд╛рдВрдиреЛ, рдЙрдиреНрд╣рд╛рд│реНрдпрд╛рдЪреНрдпрд╛ рдордзреНрдпрднрд╛рдЧреА рдореА рд░рд╛рдВрдЧреЗрддреАрд▓ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдбрд┐рдЭрд╛рдЗрдирд╡рд░ рд▓реЗрдЦрд╛рдВрдЪреА рдЖрдгрдЦреА рдПрдХ рдорд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЗ: тАЬVTrade рдкреНрд░рдпреЛрдЧтАЭ - рдЯреНрд░реЗрдбрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди. рдорд╛рд▓рд┐рдХрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ, рд▓рд┐рд▓рд╛рд╡ рдЖрдгрд┐ рд╕реНрдЯреЛрдЕрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЖрдгрд┐ рд╕рд░рд╛рд╡рд╛рдЪреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрд▓. рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд┐рд╖рдпрд╛рдВрд╕рд╛рдареА рдордд рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЛ.

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

Erlang/Elixir рдордзреАрд▓ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╡рд░реАрд▓ рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рд╣рд╛ рдЕрдВрддрд┐рдо рд▓реЗрдЦ рдЖрд╣реЗ. IN рдкрд╣рд┐рд▓рд╛ рд▓реЗрдЦ рдЖрдкрдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪрд╛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдкрд╛рдпрд╛ рд╢реЛрдзреВ рд╢рдХрддрд╛. рджреБрд╕рд░рд╛ рд▓реЗрдЦ рдЕрд╢рд╛ рдкреНрд░рдгрд╛рд▓реА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореВрд▓рднреВрдд рдирдореБрдиреЗ рдЖрдгрд┐ рдпрдВрддреНрд░рдгрд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ.

рдЖрдЬ рдЖрдореНрд╣реА рдХреЛрдб рдмреЗрд╕ рдЖрдгрд┐ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдЪреЗ рдореБрджреНрджреЗ рдорд╛рдВрдбреВ.

рд╕реЗрд╡рд╛ рд╕рдВрд╕реНрдерд╛

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рдирд╛рдд, рд╕реЗрд╡рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛рдирд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреЗрдХрджрд╛ рдПрдХрд╛ рдХрдВрдЯреНрд░реЛрд▓рд░рдордзреНрдпреЗ рдЕрдиреЗрдХ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдирдореБрдиреЗ рдПрдХрддреНрд░ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реЗрд╡рд╛, рдЬреА рдкреНрд░рдХрд▓реНрдк рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ, рддреНрдпрд╛рдВрдиреА req-resp рд╡рд┐рдирдВрддреНрдпрд╛рдВрдирд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рджрд┐рд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ рдЖрдгрд┐ pub-sub рджреНрд╡рд╛рд░реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдЕрджреНрдпрддрдирд╛рдВрдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рджрд┐рд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ. рд╣реЗ рдкреНрд░рдХрд░рдг рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ: рдореЗрд╕реЗрдЬрд┐рдВрдЧрдЪреНрдпрд╛ рдорд╛рдЧреЗ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдЖрд╣реЗ рдЬреЛ рд╕реЗрд╡рд╛ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░рддреЛ рдЖрдгрд┐ рдЕрджреНрдпрддрдиреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЛ.

рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ рддреЗрд╡реНрд╣рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрдзрд┐рдХ рдЧреБрдВрддрд╛рдЧреБрдВрддреАрдЪреА рд╣реЛрддреЗ. рдЪрд▓рд╛ рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛ рдХреА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрджрд▓рд▓реНрдпрд╛ рдЖрд╣реЗрдд:

  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} рдЕрдиреБрдХреНрд░рдореЗ

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рд╕рд░реНрд╡ рдШрдЯрдХрд╛рдВрдирд╛ рд╕рд░реНрд╡ рдмрджрд▓рд╛рдВрдЪреА рдЬрд╛рдгреАрд╡ рдЕрд╕рддреЗ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡реЗрд│реА рдПрдХ рдиреЗрддрд╛ рдЕрд╕рдгреНрдпрд╛рдЪреА рд╣рдореА рджрд┐рд▓реА рдЬрд╛рддреЗ.

рдордзреНрдпрд╕реНрде

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

рдкрдм-рд╕рдм рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирдЪреЗ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгрдЬреЗ рдмрд┐рдЭрдиреЗрд╕ рдХреЛрдЕрд░рд╕рд╣ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗрд▓реЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЗ рдЕрдкрдбреЗрдЯ рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддреЗ, рдЬрд╕реЗ рдХреА рдорд╛рд░реНрдХреЗрдЯрдордзреАрд▓ рдХрд┐рдВрдорддреАрддреАрд▓ рдмрджрд▓ рдЖрдгрд┐ рдНрдХреНрд╕реЗрд╕ рд▓реЗрдпрд░ - N рд╕рд░реНрд╡реНрд╣рд░ рдЬреЗ рд╡реЗрдм рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА рд╡реЗрдмрд╕реЙрдХреЗрдЯ API рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд.
рдЖрдкрдг рд╣реЗрдб-рдСрди рдард░рд╡рд▓реНрдпрд╛рд╕, рдЧреНрд░рд╛рд╣рдХ рд╕реЗрд╡рд╛ рдпрд╛рд╕рд╛рд░рдЦреА рджрд┐рд╕рддреЗ:

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

рдЪрд▓рд╛ рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛ рдХреА рдЖрдордЪреНрдпрд╛рдХрдбреЗ тАЬрдмрд╛рддрдореНрдпрд╛тАЭ рд╡рд┐рд╖рдпрд╛рдЪреЗ 50000 рд╕рджрд╕реНрдп рдЖрд╣реЗрдд. рд╕рджрд╕реНрдп 5 рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╕рдорд╛рди рд░реАрддреАрдиреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдкрд░рд┐рдгрд╛рдореА, рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдИрдВрдЯрд╡рд░ рдпреЗрдгрд╛рд░реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдбреЗрдЯ 50000 рд╡реЗрд│рд╛ рдкреНрд░рддрд┐рдХреГрдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓: рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ 10000 рд╡реЗрд│рд╛, рддреНрдпрд╛рд╡рд░реАрд▓ рд╕рджрд╕реНрдпрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреБрд╕рд╛рд░. рдлрд╛рд░ рдкреНрд░рднрд╛рд╡реА рдпреЛрдЬрдирд╛ рдирд╛рд╣реА, рдмрд░реЛрдмрд░?
рдкрд░рд┐рд╕реНрдерд┐рддреА рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕рд╛рджрд░ рдХрд░реВрдпрд╛ рдЬреНрдпрд╛рдЪреЗ рдирд╛рд╡ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯрд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ. рдЬрд╛рдЧрддрд┐рдХ рдирд╛рд╡ рдирд┐рдмрдВрдзрдХ рдирд╛рд╡рд╛рдиреЗ рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░рдд рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рд╣реЗ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ.

рдЪрд▓рд╛ рд╣реА рдкреНрд░реЙрдХреНрд╕реА рдНрдХреНрд╕реЗрд╕ рд▓реЗрдпрд░ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд▓рд╛рдБрдЪ рдХрд░реВрдпрд╛, рдЖрдгрд┐ рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдПрдкреАрдЖрдпрд▓рд╛ рд╕реЗрд╡рд╛ рджреЗрдгрд╛рд░реНтАНрдпрд╛ рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреНрдпрд╛рдЪреЗ рд╕рджрд╕реНрдпрддреНрд╡ рдШреЗрддреАрд▓, рдХрд░реНрдирд▓рдордзреАрд▓ рдореВрд│ рдкрдм-рд╕рдм рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯрд╡рд░ рдирд╛рд╣реА. рдкреНрд░реЙрдХреНрд╕реА рдХреЗрд╡рд│ рдЕрдирдиреНрдп рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрд╢рдирдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдХреЛрд░рдЪреЗ рд╕рджрд╕реНрдпрддреНрд╡ рдШреЗрддреЗ рдЖрдгрд┐ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд╕рдВрджреЗрд╢рд╛рдЪреА рдкреНрд░рддрд┐рдХреГрддреА рддрд┐рдЪреНрдпрд╛ рд╕рд░реНрд╡ рд╕рджрд╕реНрдпрд╛рдВрдирд╛ рджреЗрддреЗ.
рдкрд░рд┐рдгрд╛рдореА, рдХрд░реНрдирд▓ рдЖрдгрд┐ рдНрдХреНрд╕реЗрд╕ рд╕рд░реНрд╡реНрд╣рд░ рджрд░рдореНрдпрд╛рди 5 рдРрд╡рдЬреА 50000 рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддреАрд▓.

рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЖрдгрд┐ рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ

рд╡рд┐рдирдВрддреА-рдкреНрд░рддрд┐рд╕рд╛рдж

рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдореЗрд╕реЗрдЬрд┐рдВрдЧ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ, 7 рд╡рд┐рдирдВрддреА рд╡рд┐рддрд░рдг рдзреЛрд░рдгреЗ рдЖрд╣реЗрдд:

  • default. рд╡рд┐рдирдВрддреА рд╕рд░реНрд╡ рдирд┐рдпрдВрддреНрд░рдХрд╛рдВрдирд╛ рдкрд╛рдард╡рд▓реА рдЖрд╣реЗ.
  • round-robin. рд╡рд┐рдирдВрддреНрдпрд╛ рдЧрдгрдирд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдирд┐рдпрдВрддреНрд░рдХрд╛рдВрдордзреНрдпреЗ рдЪрдХреНрд░реАрдпрдкрдгреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
  • consensus. рд╕реЗрд╡рд╛ рджреЗрдгрд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдиреЗрддреЗ рдЖрдгрд┐ рдЧреБрд▓рд╛рдорд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд. рд╡рд┐рдирдВрддреНрдпрд╛ рдлрдХреНрдд рдиреЗрддреНрдпрд╛рд▓рд╛ рдкрд╛рдард╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
  • consensus & round-robin. рдЧрдЯрд╛рдордзреНрдпреЗ рдПрдХ рдиреЗрддрд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╡рд┐рдирдВрддреНрдпрд╛ рд╕рд░реНрд╡ рд╕рджрд╕реНрдпрд╛рдВрдордзреНрдпреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
  • sticky. рд╣реЕрд╢ рдлрдВрдХреНрд╢рдирдЪреА рдЧрдгрдирд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рдБрдбрд▓рд░рд▓рд╛ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдпрд╛ рд╕реНрд╡рд╛рдХреНрд╖рд░реАрд╕рд╣ рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рддреНрдпрд╛рдЪ рд╣рдБрдбрд▓рд░рдХрдбреЗ рдЬрд╛рддрд╛рдд.
  • sticky-fun. рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯ рд╕реБрд░реВ рдХрд░рддрд╛рдирд╛, рд╕рд╛рдареА рд╣реЕрд╢ рдЧрдгрдирд╛ рдХрд╛рд░реНрдп sticky рд╕рдВрддреБрд▓рди
  • fun. рд╕реНрдЯрд┐рдХреА-рдлрди рдкреНрд░рдорд╛рдгреЗрдЪ, рдХреЗрд╡рд│ рддреБрдореНрд╣реА рдЕрддрд┐рд░рд┐рдХреНрддрдкрдгреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реВ рд╢рдХрддрд╛, рдирд╛рдХрд╛рд░реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рдкреВрд░реНрд╡-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рд╢рдХрддрд╛.

рдЬреЗрд╡реНрд╣рд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯ рд╕реБрд░реВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рддреЗрд╡реНрд╣рд╛ рд╡рд┐рддрд░рдг рдзреЛрд░рдг рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдореЗрд╕реЗрдЬрд┐рдВрдЧ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдВрд╕реНрдерд╛рдВрдирд╛ рдЯреЕрдЧ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдЪрд▓рд╛ рд╕рд┐рд╕реНрдЯрдордордзреАрд▓ рдЯреЕрдЧрдЪреЗ рдкреНрд░рдХрд╛рд░ рдкрд╛рд╣реВ:

  • рдХрдиреЗрдХреНрд╢рди рдЯреЕрдЧ. рдЗрд╡реНрд╣реЗрдВрдЯ рдХреЛрдгрддреНрдпрд╛ рдХрдиреЗрдХреНрд╢рдирджреНрд╡рд╛рд░реЗ рдЖрд▓реЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдЬреЗрд╡реНрд╣рд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рди рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯрд╢реА рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ, рдкрд░рдВрддреБ рднрд┐рдиреНрди рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреА рд╕рд╣ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ.
  • рд╕реЗрд╡рд╛ рдЯреЕрдЧ. рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛ рд╕реЗрд╡реЗрд╕рд╛рдареА рд╣рдБрдбрд▓рд░реНрд╕рдирд╛ рдЧрдЯрд╛рдВрдордзреНрдпреЗ рдПрдХрддреНрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЖрдгрд┐ рд╕рдорддреЛрд▓ рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рджреЗрддреЗ. req-resp рдкреЕрдЯрд░реНрдирд╕рд╛рдареА, рд░рд╛рдЙрдЯрд┐рдВрдЧ рд░реЗрдЦреАрдп рдЖрд╣реЗ. рдЖрдореНрд╣реА рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯрд▓рд╛ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рддреЛ, рдирдВрддрд░ рддреА рд╕реЗрд╡реЗрдХрдбреЗ рдкрд╛рдард╡рддреЗ. рдкрд░рдВрддреБ рдЬрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╣рдБрдбрд▓рд░реНрд╕рдирд╛ рддрд╛рд░реНрдХрд┐рдХ рдЧрдЯрд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рд╛рдпрдЪреЗ рдЕрд╕реЗрд▓ рддрд░ рдЯреЕрдЧ рд╡рд╛рдкрд░реВрди рд╡рд┐рднрд╛рдЬрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЯреЕрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛рдирд╛, рд╡рд┐рдирдВрддреА рдирд┐рдпрдВрддреНрд░рдХрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрдЯрд╛рдХрдбреЗ рдкрд╛рдард╡рд┐рд▓реА рдЬрд╛рдИрд▓.
  • рдЯреЕрдЧрдЪреА рд╡рд┐рдирдВрддреА рдХрд░рд╛. рддреБрдореНрд╣рд╛рд▓рд╛ рдЙрддреНрддрд░рд╛рдВрдордзреНрдпреЗ рдлрд░рдХ рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рджреЗрддреЗ. рдЖрдордЪреА рдкреНрд░рдгрд╛рд▓реА рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рддрд╛рдирд╛ рдПрдХ RequestTag рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдд рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рддреНрдпрд╛рд╡рд░реВрди рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреНрдпрд╛ рд╡рд┐рдирдВрддреАрдЪреЗ рдЙрддреНрддрд░ рдЖрд▓реЗ рд╣реЗ рд╕рдордЬреВ рд╢рдХреЗрд▓.

рдкрдм-рд╕рдм

рдкрдм-рд╕рдмрд╕рд╛рдареА рд╕рд░реНрд╡ рдХрд╛рд╣реА рдереЛрдбреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯ рдЖрд╣реЗ рдЬреНрдпрд╛рд╡рд░ рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдИрдВрдЯ рдЧреНрд░рд╛рд╣рдХрд╛рдВрдордзреНрдпреЗ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░реАрдд рдХрд░рддреЛ рдЬреНрдпрд╛рдВрдиреА рддреНрдпрд╛рдВрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреАрдЪреЗ рд╕рджрд╕реНрдпрддреНрд╡ рдШреЗрддрд▓реЗ рдЖрд╣реЗ (рдЖрдореНрд╣реА рдЕрд╕реЗ рдореНрд╣рдгреВ рд╢рдХрддреЛ рдХреА рд╣реЗ рд╡рд┐рд╖рдпрд╛рдВрд╢реА рдПрдХрд░реВрдк рдЖрд╣реЗ).

рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдЖрдгрд┐ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛

рд╕рдВрдкреВрд░реНрдгрдкрдгреЗ рд╕рд┐рд╕реНрдЯрдордЪреА рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рд╕реНрддрд░ рдЖрдгрд┐ рдШрдЯрдХрд╛рдВрдЪреНрдпрд╛ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреАрдЪреНрдпрд╛ рдбрд┐рдЧреНрд░реАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ:

  • рдпрд╛ рд╕реЗрд╡реЗрд╕рд╛рдареА рд╣рдБрдбрд▓рд░реНрд╕рд╕рд╣ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдиреЛрдбреНрд╕ рдЬреЛрдбреВрди рд╕реЗрд╡рд╛ рдореЛрдЬрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдЪрд╛рдЪрдгреА рдСрдкрд░реЗрд╢рди рджрд░рдореНрдпрд╛рди, рддреБрдореНрд╣реА рдЗрд╖реНрдЯрддрдо рд╕рдВрддреБрд▓рди рдзреЛрд░рдг рдирд┐рд╡рдбреВ рд╢рдХрддрд╛.
  • рдПрдХрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдореЗрд╕реЗрдЬрд┐рдВрдЧ рд╕реЗрд╡рд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдПрдХрддрд░ рд╡рд┐рд╢реЗрд╖рдд: рд▓реЛрдб рдХреЗрд▓реЗрд▓реЗ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреЙрдЗрдВрдЯреНрд╕ рд╡реЗрдЧрд│реНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╣рд▓рд╡реВрди рдХрд┐рдВрд╡рд╛ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрдГ рд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рднрд╛рдЧрд╛рдд рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбреВрди рдореЛрдЬрд▓реА рдЬрд╛рддреЗ.
  • рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрдкреВрд░реНрдг рдореНрд╣рдгреВрди рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реАрдЪреА рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреНрдпрд╛ рд▓рд╡рдЪрд┐рдХрддреЗрд╡рд░ рдЖрдгрд┐ рд╡реИрдпрдХреНрддрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рддрд╛рд░реНрдХрд┐рдХ рдШрдЯрдХрд╛рдордзреНрдпреЗ рдПрдХрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ.

рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдпрд╢ рдЕрдиреЗрдХрджрд╛ рд╕реНрдХреЗрд▓рд┐рдВрдЧрдЪреНрдпрд╛ рд╕рд╛рдзреЗрдкрдгрд╛рд╡рд░ рдЖрдгрд┐ рдЧрддреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ. рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдЖрд╡реГрддреНрддреАрдордзреАрд▓ рд╕рдВрджреЗрд╢рди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╣ рд╡рд╛рдврддреЗ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ 50-60 рдорд╢рд┐рдиреНрд╕рдЪрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдирд╕рд▓рд╛ рддрд░реА рдЖрдореНрд╣реА рдлреЗрдбрд░реЗрд╢рдирдЪрд╛ рдЕрд╡рд▓рдВрдм рдХрд░реВ рд╢рдХрддреЛ. рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдлреЗрдбрд░реЗрд╢рдирдЪрд╛ рд╡рд┐рд╖рдп рдпрд╛ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╡реНрдпрд╛рдкреНрддреАрдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдЖрд╣реЗ.

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

рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛рдирд╛, рдЖрдореНрд╣реА рд╕реЗрд╡рд╛ рдирд┐рдпрдВрддреНрд░рдХрд╛рдВрдЪреНрдпрд╛ рд░рд┐рдбрдВрдбрдВрд╕реАрдмрджреНрджрд▓ рдЖрдзреАрдЪ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЖрд╣реЗ. рддрдерд╛рдкрд┐, рд╕рдВрджреЗрд╢рд╡рд╣рди рджреЗрдЦреАрд▓ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдиреЛрдб рдХрд┐рдВрд╡рд╛ рдорд╢рд┐рди рдХреНрд░реЕрд╢ рдЭрд╛рд▓реНрдпрд╛рд╕, рдореЗрд╕реЗрдЬрд┐рдВрдЧ рдЖрдкреЛрдЖрдк рд░рд┐рдХрд╡реНрд╣рд░ рд╡реНрд╣рд╛рдпрд▓рд╛ рд╣рд╡реЗ рдЖрдгрд┐ рдХрдореАрдд рдХрдореА рд╡реЗрд│реЗрдд.

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

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

рдЪрд▓рд╛ rabbitmq рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдХрд╕реНрдЯрдо рдореЗрд╕реЗрдЬрд┐рдВрдЧрдЪреНрдпрд╛ рдХрд╛рдордЧрд┐рд░реАрдЪреА рдХрд┐рдорд╛рди рддреБрд▓рдирд╛ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛.
рдорд▓рд╛ рд╕рд╛рдкрдбрд▓реЗ рдЕрдзрд┐рдХреГрдд рдкрд░рд┐рдгрд╛рдо рдУрдкрдирд╕реНрдЯреЕрдХ рд╕рдВрдШрд╛рдХрдбреВрди rabbitmq рдЪрд╛рдЪрдгреА.

рдкрд░рд┐рдЪреНрдЫреЗрдж 6.14.1.2.1.2.2 рдордзреНрдпреЗ. рдореВрд│ рджрд╕реНрддрдРрд╡рдЬ RPC CAST рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рджрд░реНрд╢рд╡рд┐рддреЛ:
рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреЗ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕. рджреБрд╕рд░рд╛ рдЕрдВрджрд╛рдЬ

рдЖрдореНрд╣реА OS рдХрд░реНрдирд▓ рдХрд┐рдВрд╡рд╛ erlang VM рд╡рд░ рдХреЛрдгрддреАрд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЖрдЧрд╛рдК рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рдЕрдЯреА:

  • erl opts: +A1 +sbtu.
  • рд╕рд┐рдВрдЧрд▓ рдПрд░рд▓рд╛рдВрдЧ рдиреЛрдбрдордзреАрд▓ рдЪрд╛рдЪрдгреА рдореЛрдмрд╛рдЗрд▓ рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдЬреБрдиреНрдпрд╛ i7 рд╕рд╣ рд▓реЕрдкрдЯреЙрдкрд╡рд░ рдЪрд╛рд▓рд╡рд┐рд▓реА рдЬрд╛рддреЗ.
  • рдХреНрд▓рд╕реНрдЯрд░ рдЪрд╛рдЪрдгреНрдпрд╛ 10G рдиреЗрдЯрд╡рд░реНрдХрд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд.
  • рдХреЛрдб рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рддреЛ. NAT рдореЛрдбрдордзреНрдпреЗ рдиреЗрдЯрд╡рд░реНрдХ.

рдЪрд╛рдЪрдгреА рдХреЛрдб:

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.

рдкрд░рд┐рд╕реНрдерд┐рддреА реи: рдЪрд╛рдЪрдгреА рдЬреБрдиреНрдпрд╛ 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)

рдкрд░рд┐рд╕реНрдерд┐рддреА рез: рдбреЙрдХрд░ (NAT) рдЕрдВрддрд░реНрдЧрдд рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдорд╢реАрдирд╡рд░ рдЪрд╛рд▓рдгрд╛рд░реЗ 3 рдиреЛрдб.

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

рдХреЗрд╡рд│ рдиреЛрдВрджрдгреАрдХреГрдд рд╡рд╛рдкрд░рдХрд░реНрддреЗрдЪ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрд╛рдд рднрд╛рдЧ рдШреЗрдК рд╢рдХрддрд╛рдд. рд╕рд╛рдЗрди рдЗрди рдХрд░рд╛, рдЖрдкрд▓реЗ рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ.

VTrade рдкреНрд░рдпреЛрдЧ рдорд╛рд▓рд┐рдХреЗрдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгреВрди рдореА рдХреЛрдгрддреЗ рд╡рд┐рд╖рдп рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдХрд╡реНрд╣рд░ рдХрд░рд╛рд╡реЗ?

  • рд╕рд┐рджреНрдзрд╛рдВрдд: рдмрд╛рдЬрд╛рд░, рдСрд░реНрдбрд░ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рд╡реЗрд│: DAY, GTD, GTC, IOC, FOK, MOO, MOC, LOO, LOC

  • рдСрд░реНрдбрд░рдЪреЗ рдкреБрд╕реНрддрдХ. рд╕рдореВрд╣реАрдХрд░рдгрд╛рд╕рд╣ рдкреБрд╕реНрддрдХрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЖрдгрд┐ рд╕рд░рд╛рд╡

  • рдЯреНрд░реЗрдбрд┐рдВрдЧрдЪреЗ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди: рдЯрд┐рдХреНрд╕, рдмрд╛рд░, рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рди. рдХрд╕реЗ рд╕рд╛рдард╡рд╛рдпрдЪреЗ рдЖрдгрд┐ рдЧреЛрдВрдж рдХрд╕реЗ

  • рдмреЕрдХрдСрдлрд┐рд╕. рдирд┐рдпреЛрдЬрди рдЖрдгрд┐ рд╡рд┐рдХрд╛рд╕. рдХрд░реНрдордЪрд╛рд░реА рдирд┐рд░реАрдХреНрд╖рдг рдЖрдгрд┐ рдШрдЯрдирд╛ рддрдкрд╛рд╕

  • API рдХреЛрдгрддреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛рдпрдЪреЗ рддреЗ рд╢реЛрдзреВрдпрд╛

  • рдорд╛рд╣рд┐рддреА рд╕реНрдЯреЛрд░реЗрдЬ: рдЯреНрд░реЗрдбрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ PostgreSQL, Timescale, Tarantool

  • рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдордзреНрдпреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛

  • рдЗрддрд░. рдореА рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рд▓рд┐рд╣реАрди

6 рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рдорддрджрд╛рди рдХреЗрд▓реЗ. 4 рд╡рд╛рдкрд░рдХрд░реНрддреЗ рджреВрд░ рд░рд╛рд╣рд┐рд▓реЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛