рдлрд╛рдЗрди рдЯреНрдпреВрди рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ

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



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

рдирд┐рдХреЛрд▓реЗ рд╕рд┐рд╡рдХреЛ ( рдирд┐рдХреЛрд▓реЗрд╕реЗрд╡рдХреЛ ) рдиреЗ рд░реВрдЯрдХреЙрдиреНрдл 2018 рдкрд░ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╕реВрдХреНрд╖реНрдо рдФрд░ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЗ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд╣рд▓реБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХреА:

  • рдЬрдм рдЕрдиреБрд░реЛрдз (рдкреБрди: рдкреНрд░рдпрд╛рд╕) рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП;
  • рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ;
  • рдХреИрд╕реЗ рджреБрд░реНрдШрдЯрдирд╛ / рднреАрдбрд╝ рдХреЗ рд╕рдордп рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд░реНрд╡рд░ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ;
  • рдХреНрдпрд╛ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;
  • рдХреИрд╕реЗ рдЪрдВрдЪрд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдХреИрдЯ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рддрд╣рддред


рд╡рдХреНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдирд┐рдХреЛрд▓реЗ рд╢рд┐рд╡рдХреЛ okmeter.io рдХреЗ рд╕рд╣-рд╕рдВрд╕реНрдерд╛рдкрдХред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдФрд░ рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рдиреЗрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ред Hh.ru рдкрд░ рд╕реБрдкрд░рд╡рд╛рдЗрдЬреНрдб рдСрдкрд░реЗрд╢рдиред рдЙрдиреНрд╣реЛрдВрдиреЗ рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрд╡рд╛ okmeter.io рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреАред рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдиреБрднрд╡ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдореБрдЦреНрдп рд╕реНрд░реЛрдд рд╣реИред

рд╣рдо рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ?


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



рдЬрдм рдореИрдВ рд╕рдВрддреБрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХрдИ рд▓реЛрдЧ рдЗрд╕реЗ "рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд▓реЛрдб рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдмреЗрд╣рддрд░ рд╣реИред"



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



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

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

  • "рдпрд╣ рдПрдХ рдЫреЛрдЯреА рдлрдЯ рд╣реИ!"
  • "рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд░рд┐рд▓реАрдЬ рд░реЛрд▓рд┐рдВрдЧ рд╣реИред"
  • "рд╕рд░реНрд╡рд░ рдорд░ рдЪреБрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрд░рдо рдореЗрдВ рд╣реИред"
  • "рд╡рд╛рд╕реНрдпрд╛ рдиреЗ рдмреИрдХрдПрдВрдб рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред"

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

рдареАрдХ рдзреБрди


рдореИрдВрдиреЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ "рдлрд╛рдЗрди рдЯреНрдпреВрдирд┐рдВрдЧ" (рдЗрдВрдЬреАред рдЯреНрдпреВрдирд┐рдВрдЧ) рдХрд╣рд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛ред рд╡реЗ рд╡рд╣рд╛рдБ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд┐рд▓рддреЗ?

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

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдп рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:

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

рдЯреЗрд╕реНрдЯ рд╕реНрдЯреИрдВрдб


рдЪрд▓реЛ рд╕рд░рд▓, рд╕реНрдкрд╖реНрдЯ рдорд╛рдорд▓реЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдПрдХ рдЧреЛрд▓рд╛рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ http-200 рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдЗрд╕реЗ "http-503" рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо 3 рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

  • 127.0.0.1:20001
  • 127.0.0.1:20002
  • 127.0.0.1:20003

рд╣рдо nandx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ yandex.tank рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 100rps рдХреА рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ Nginx:

upstream backends { server 127.0.0.1:20001; server 127.0.0.1:20002; server 127.0.0.1:20003; } server { listen 127.0.0.1:30000; location / { proxy_pass http://backends; } } 

рдЖрджрд┐рдо рдкрд░рд┐рджреГрд╢реНрдп


рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, 503 рдореЛрдб рдореЗрдВ рдмреИрдХрдПрдВрдб рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рдФрд░ рд╣рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рддрд┐рд╣рд╛рдИ рд╣рд┐рд╕реНрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИред



рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА, рддреЛ рдирдЧреНрдиреЗрдХреНрд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рддрд╛ рд╣реИред

 Nginx default: proxy_next_upstream error timeout; 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдирдЧрдиреЗрдХреНрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрдХреНрд╖ рд╕реЗ рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд╣реИ: рдирдЧрдиреЗрдХреНрд╕ рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВред

рддрджрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рд░рд┐рдЯреНрд░реАрдЯ - рд░рд┐рдЯреНрд░реАрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕


рдЗрд╕рдХреЗ рдмреАрдЪ рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

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

рд╕рдЪреНрдЪрд╛рдИ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЗрди рддреАрди рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИред рдЖрдЗрдП рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗред

рдореИрдВрдиреЗ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ 3 рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ:

1. рдкрд░рд┐рд╡рд╣рди рддреНрд░реБрдЯрд┐
HTTP рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП TCP рд╣реИ, рдФрд░, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рд╣рдо рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрдЕрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрдЕрдк рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ, рдореИрдВ 3 рд╕рд╛рдорд╛рдиреНрдп рдмреИрдирдХреНрд░реИрдХрд░реНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдБрдЧрд╛ (рд╣рдо рдереЛрдбрд╝рд╛ рдФрд░ рдЖрдЧреЗ рджреВрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ):

  • nginx : рддреНрд░реБрдЯрд┐рдпрд╛рдБ + рдЯрд╛рдЗрдордЖрдЙрдЯ (рдкреНрд░реЙрдХреНрд╕реА_рдХрдиреЗрдХреНрдЯ_рдЯрд╛рдЗрдо);
  • HAProxy : рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрдиреЗрдХреНрдЯ;
  • рджреВрдд : рдХрдиреЗрдХреНрдЯ-рд╡рд┐рдлрд▓рддрд╛ + рдЗрдирдХрд╛рд░-рдзрд╛рд░рд╛ред

рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдХреЗ рдкрд╛рд╕ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ рдХрд┐ рдПрдХ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ рдПрдХ рдХрдиреЗрдХреНрд╢рди рддреНрд░реБрдЯрд┐ рдФрд░ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИ; HAProxy рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИ, Envoy рдореЗрдВ рд╕рдм рдХреБрдЫ рдорд╛рдирдХ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред

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

  • Nginx рдореЗрдВ: рдЯрд╛рдЗрдордЖрдЙрдЯ (prox_send_timeout * +xy_read_timeout *);
  • HAProxy рдХрд╛ OOPS рд╣реИ :( - рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ HAProxy, рдпрджрд┐ рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рдЪреБрдХрд╛ рд╣реИ, рддреЛ рдЕрдиреБрд░реЛрдз рдХреЛ рдлрд┐рд░ рд╕реЗ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
  • рджреВрдд рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: рдЯрд╛рдЗрдордЖрдЙрдЯ || per_try_timeoutред

3. HTTP рд╕реНрдерд┐рддрд┐
HAProxy рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдмреИрд▓реЗрдВрд╕рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдЕрдЧрд░ рдлрд┐рд░ рднреА рдмреИрдХрдПрдВрдб рдиреЗ рдЖрдкрдХреЛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдЧрд▓рдд рдХреЛрдб рдХреЗ рд╕рд╛рдеред

  • nginx : http_ *
  • HAProxy : OOPS :(
  • рдПрдирд╡реЙрдп : 5xx, рдЧреЗрдЯрд╡реЗ-рдПрд░рд░ (502, 503, 504), рд░рд┐рдЯреНрд░реАрдПрдмрд▓ -4xx (409)

рд╕рдордп рд╕рдорд╛рдкреНрддрд┐


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

рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ


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

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

 fail fast: listen backlog + net.ipv4.tcp_abort_on_overflow 

рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ


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

рдирдВрдЧреЗрдХреНрд╕ рдХреЗ рдкрд╛рд╕ рд╕реНрд╡рдпрдВ рдкреВрд░реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд╣реАрдВ рд╣реИред рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╣реИ:

  • xy_send_timeout: рджреЛ рд╕рдлрд▓ рд▓реЗрдЦрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдордп рд▓рд┐рдЦрдирд╛ ();
  • xy_read_timeout: рджреЛ рд╕рдлрд▓ рд░реАрдб рд░реАрдб () рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдордпред

рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдзреАрд░реЗ-рдзреАрд░реЗ рдмреИрдХрдПрдВрдб рд╣реИ, рддреЛ рдПрдХ рдмрд╛рд░ рдмрд╛рдЗрдЯ, рдЯрд╛рдЗрдордЖрдЙрдЯ рдореЗрдВ рдХреБрдЫ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдЬреИрд╕реЗ, nginx рдореЗрдВ request_timeout рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдКрдкрд░ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рд╡реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕реНрд▓реЛ рд▓реЛрд░рд┐рд╕ рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, read_timeout request_timeout рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдиреНрд╡реЙрдп рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕рдм рд╣реИ: рдЯрд╛рдЗрдордЖрдЙрдЯ || per_try_timeoutред

рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ


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

  • рдпрджрд┐ рд╣рдо рдПрдХ рдПрдХрд▓ рд╕рд░реНрд╡рд░ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдзрд┐рдХрддрдо рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: request_timeout рдЕрдзрд┐рдХрддрдоред
  • рдпрджрд┐ рдЖрдк рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреИрдХреЗрдВрдб рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП 2 рдЧрд╛рд░рдВрдЯреАрдХреГрдд рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордЖрдЙрдЯ рдЗрд╕ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдЖрдзреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ: per_try_timeout = 0.5 * рдореИрдХреНрд╕ред
  • рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИ - рдкрд╣рд▓реЗ рдмреИрдХреЗрдВрдб рдХреЗ "рд╕реБрд╕реНрдд" рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ 2 рдЖрд╢рд╛рд╡рд╛рджреА рдкреНрд░рдпрд╛рд╕ , рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рддреБрд░рдВрдд рдЬрд╡рд╛рдм рджреЗрдЧрд╛: per_try_timeout = k * max (рдЬрд╣рд╛рдВ k> 0.5)ред

рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЯрд╛рдЗрдордЖрдЙрдЯ рдЪреБрдирдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ ред рд╣рдореЗрд╢рд╛ рд╕реАрдорд╛ рдХреЗ рдорд╛рдорд▓реЗ рд╣реЛрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 99% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рд╣реИрдВрдбрд▓рд░ рдХреЛ 10 рдПрдордПрд╕ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 500 рдПрдордПрд╕ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдкрд░ 1% рдорд╛рдорд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ 1% рдХреЗ рд╕рд╛рде, рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкреВрд░рд╛ рд╕рдореВрд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SLA рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ 100 ms рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрди рдХреНрд╖рдгреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдмрд╛рд░ рдЖрд╡реЗрджрди рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

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

рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдПрдХ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдордиреЛрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмрд╣реБрдд рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ, рдХрд┐ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрд╡рдВрдЯрд┐рдд рд╕рдордп рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдВрдЧреЗ (рдпрд╣ рдПрдХ рдкреНрд░рд╛рдЪреАрди рдЪреАрдиреА рдХрд╣рд╛рд╡рдд рд╣реИ: "рдпрджрд┐ рдШреЛрдбрд╝реА рдорд░ рдЧрдИ рд╣реИ, рддреЛ рдЙрддрд░реЗрдВ!") ред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЖрдкрдХреА рд╕реЗрд╡рд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ:

  • рдпрджрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдЦрд░рд╛рдм рд╣реИ, рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд╕рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред

рд╕рдЯреНрдЯрд╛ рд░рд┐рдЯреНрд░реАрдЯ # рдирд┐рдлрд╝рдЧ


рд╣рдордиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдореВрд▓реНрдп рдЪреБрдирдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХреБрдЫ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рдЬрдЯрд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ :)

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

рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдмреИрд▓реЗрдиреНрд╕рд░ рдореЗрдВ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреИрд╕реЗрдВрдбреНрд░рд╛ (рддреЗрдЬреА рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рд╕реБрд░рдХреНрд╖рд╛) рдХреЗ рд╕рд╛рде рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

рд╕рдЯреНрдЯрд╛_рд░реЗрдЯреНрд░реА = рдПрди рдПрдордПрд╕ | рдПрдо рд╡реЗрдВ рдкрд░рд╕реЗрдВрдЯрд╛рдЗрд▓

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЛ рдЯрд╛рдЗрдо рдЖрдЙрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ ред рдЖрдк рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрддрд░ рдкрд░ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

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

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



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

рд░рд┐рдЯреНрд░реАрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдФрд░ рдХреНрдпрд╛ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ?

рдиреЛ рд░рд┐рдЯрд░реНрди рдХрд╛ рдмрд┐рдВрджреБ (V1)


рдпрд╣рд╛рдБ V1 рд╕рдВрд╕реНрдХрд░рдг 1 рдирд╣реАрдВ рд╣реИред рд╡рд┐рдорд╛рдирди рдореЗрдВ рдРрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ - рдЧрддрд┐ V1ред рдпрд╣ рдЧрддрд┐ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд░рдирд╡реЗ рдкрд░ рддреНрд╡рд░рдг рдХреЛ рдзреАрдорд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕реЗ рдЙрддрд╛рд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрдЧреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдВред

рдиреЛ рд░рд┐рдЯрд░реНрди рдХрд╛ рдПрдХ рд╣реА рдмрд┐рдВрджреБ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░реНрд╕ рдореЗрдВ рд╣реИ: рдЬрдм рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ 1 рдмрд╛рдЗрдЯ рдкрд╛рд╕ рдХрд┐рдпрд╛, рддреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рддрдп рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ ред рдпрджрд┐ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдмреИрдХрдПрдВрдб рдорд░ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рд░рд┐рдЯреНрд░реАрдЯ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЖрдк рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╕реБрдВрджрд░ рд╢рдЯрдбрд╛рдЙрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдмрддрд╛рдПрдВ: "рдЖрдк рдЕрдм рдирдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ!" рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЗрд╕реЗ рдмреБрдЭрд╛ рджреЗрдВред

рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреБрдЫ рдореБрд╢реНрдХрд┐рд▓ рдЕрдЬрд╛рдХреНрд╕ рдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдпрд╣ рдЕрдиреБрд░реЛрдз рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрдк рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЛ рд░рд┐рдЯрд░реНрди рдХрд╛ рдмрд┐рдВрджреБ [рджреВрдд]


рджреВрдд рдХреА рдРрд╕реА рдЕрдЬреАрдм рдЪрд╛рд▓ рдереАред Per_try_timeout рд╣реИ - рдпрд╣ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЕрдиреБрд░реЛрдз рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдпрд╛рд╕ рдХрд┐рддрдирд╛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕ рд╕рдордпрдмрд╛рд╣реНрдп рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмреИрдХрдПрдВрдб рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рддреЛ рд╕рдм рдХреБрдЫ рдмрд╛рдзрд┐рдд рд╣реЛ рдЧрдпрд╛, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред

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

рд░рд┐рдЯреНрд░реАрдЯ: рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


рд░рд┐рдЯреНрд░реАрдЯ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдерд╛рдХрдерд┐рдд рд╣рддреНрдпрд╛рд░реЗ рдЕрдиреБрд░реЛрдз рд╣реИрдВ: рднрд╛рд░реА рдкреНрд░рд╢реНрди рдЬреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рддрд░реНрдХ рдХрд░рддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдмрд╣реБрдд рдкрд╣реБрдВрдЪ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ per_try_timeout рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдмрд╛рд░-рдмрд╛рд░ рд░рд┐рдЯреНрд░реАрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдЖрдзрд╛рд░ рдХреЛ рдорд╛рд░ рджреЗрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ (99.9%) рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрд░реЛрдз рд░рджреНрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ ред

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

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

nginx:

  • рдкреНрд░реЙрдХреНрд╕реА_рдиреЗрдХреНрд╕реНрдЯ_рдЕрдкрд╕реНрдЯреНрд░реАрдо_рдЯрд╛рдЗрдо (рд╡реИрд╢реНрд╡рд┐рдХ)
  • proxt_read_timeout ** per_try_timeout рдХреЗ рд░реВрдк рдореЗрдВ
  • proxy_next_upstream_tries

рджреВрдд:

  • рдЯрд╛рдЗрдордЖрдЙрдЯ (рд╡реИрд╢реНрд╡рд┐рдХ)
  • per_try_timeout
  • num_retries

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

рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: рд▓рд╛рдЧреВ рдХрд░реЗрдВ [nginx]


рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рд╣рдордиреЗ nginx 2 рдореЗрдВ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ - рддрджрдиреБрд╕рд╛рд░, HTTP 503 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рджреЛрдмрд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рджреЛрдиреЛрдВ рдмреИрдХреЗрдВрдб рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВред

 upstream backends { server 127.0.0.1:20001; server 127.0.0.1:20002; server 127.0.0.1:20003; } server { listen 127.0.0.1:30000; proxy_next_upstream error timeout http_503; proxy_next_upstream_tries 2; location / { proxy_pass http://backends; } } 

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





рдХреНрдпрд╛ рд╣реБрдЖ?

  • xy_next_upstream_tries = 2ред
  • рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдЖрдк "рдореГрдд" рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ - рджреВрд╕рд░реЗ "рдореГрдд" рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "рдЦрд░рд╛рдм" рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ HTTP-503 рдорд┐рд▓рддрд╛ рд╣реИред
  • рд╡рд╣рд╛рдБ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ nginx "рдмреИрди" рдПрдХ рдЦрд░рд╛рдм рд╕рд░реНрд╡рд░ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ nginx рдореЗрдВ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдмреИрдХрдПрдВрдб рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЧрдИрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ fail_timeout рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ ред

рд▓реЗрдХрд┐рди рдЧрд▓рддрд┐рдпрд╛рдБ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛ред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

рд╣рдо рдпрд╛ рддреЛ рд░рд┐рдЯреНрд░реАрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдлрд┐рд░ "рд╣рддреНрдпрд╛рд░реЗ рдЕрдиреБрд░реЛрдзреЛрдВ" рдХреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВ), рдпрд╛ рд╣рдо "рдореГрдд" рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдЬрд╛рдБрдЪ


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

рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ: рдмреИрдХрдПрдВрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ


рдмреИрдХрдПрдВрдб рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЖрдк рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рд╕рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдк-рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░рддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдЬрд┐рд╕ рдкрд░ рдмреИрдХрдПрдВрдб рдСрдкрд░реЗрд╢рди рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдкреВрд▓ рдореЗрдВ рдореБрдлреНрдд рдХрдиреЗрдХреНрд╢рди рд╣реИрдВ, рдЖрджрд┐, рдЖрджрд┐ред
  • рдЖрдк рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ URL рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд░реНрдХ рд▓рдЯрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмреИрд▓реЗрдВрд╕рд░ рдмрд╣реБрдд рдмреБрджреНрдзрд┐рдорд╛рди рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╣реЛрд╕реНрдЯ рд╕реЗ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд▓реЗрддреЗ рд╣реИрдВ)ред рд╕рд░реНрд╡рд░ рдпрд╣ рдпрд╛рдж рд░рдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ "рдЖрдЦрд┐рд░реА рдорд┐рдирдЯ рдореЗрдВ рдореИрдВрдиреЗ рдЗрддрдиреА рд╕рд╛рд░реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреАрдВ - рд╢рд╛рдпрдж рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛" рдЧрд▓рдд "рд╕рд░реНрд╡рд░ рд╣реВрдВ, рдФрд░ рдЕрдЧрд▓реЗ 2 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП" рдкрд╛рдВрдЪ рд╕реМ "рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВ рд╕реНрд╡рдпрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛ рджреВрдВрдЧрд╛! " рдпрд╣ рдХрднреА-рдХрднреА рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╣реЛрддрд╛ рд╣реИред
  • рдЖрдорддреМрд░ рдкрд░, рдЪреЗрдХ рдЕрдВрддрд░рд╛рд▓ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрд▓реНрде рдЪреЗрдХ рд╣реИрдВрдбрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╣рд▓реНрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ:

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

Nginx рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдХреЗрд╡рд▓ nginx + рдХреЗ рд╕рд╢реБрд▓реНрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИред

рдореИрдВ рдПрдирд╡реЙрдп рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ, рдЗрд╕рдореЗрдВ рд╣реЗрд▓реНрде рдЪреЗрдХ рдкреИрдирд┐рдХ рдореЛрдб рд╣реИред рдЬрдм рд╣рдордиреЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛, "рдЕрд╕реНрд╡рд╛рд╕реНрдереНрдпрдХрд░" рдХреЗ рд░реВрдк рдореЗрдВ, рдПрди% рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдЬрдмрд╛рди (70% рдХрд╣рддреЗ рд╣реИрдВ), рдЙрдирдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рднреА рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдЭреВрда рд╣реИрдВ, рдФрд░ рд╕рднреА рдореЗрдЬрдмрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреАрд╡рд┐рдд рд╣реИрдВред рдПрдХ рдмрд╣реБрдд рдмреБрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рджреМрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдБ рдЖрдкрдиреЗ рдЦреБрдж рдЕрдкрдиреЗ рдкреИрд░ рдХреЛ рдЧреЛрд▓реА рдорд╛рд░реА рдереА рдФрд░ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдпрд╛ рдерд╛ред рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред

рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛


рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП:

  • рдпрд╛ рдирдЧрдиреЗрдХреНрд╕ +;
  • рдпрд╛ рдирдЧрдиреЗрдХреНрд╕ + рдХреБрдЫ рдФрд░ :)

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

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ nginx + Envoy рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЦреБрдж рдХреЛ рдХреЗрд╡рд▓ Envoy рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рджреВрдд?


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

рдореИрдВ рдЖрдкрдХреЛ рдЙрд╕рдХреЗ рдмрдиреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдмрддрд╛рдКрдВрдЧрд╛ред

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

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

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


рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ (рд╣рд┐рд╕реНрдЯрд┐рдХреНрд╕ рд▓рд╛рдЗрдХ рд▓рд┐рдмрд╛рд╕), рдореВрд▓ eBay рдХреЗ рдмреНрд▓реЙрдЧ рдкрд░ред

рдКрдкрд░ рд╣рд┐рд╕реНрдЯреНрд░рд┐рдХреНрд╕ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рд╕рд░реНрдХрд┐рдЯ рд╣реИред рд╣рд┐рд╕реНрдЯрд┐рдХреНрд╕ рдиреЗрдЯрдлреНрд▓рд┐рдХреНрд╕ рдХреА рдЬрд╛рд╡рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕реЗ рдлреЙрд▓реНрдЯ рдЯреЙрд▓рд░реЗрдВрд╕ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

рдПрдиреНрд╡реЙрдп рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐, рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрдереНрдп рдкрд░ рдКрдкрд░реА-рд╕реНрддрд░реАрдп рд╕реАрдорд╛рдПрдВ рд╣реИрдВ рдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрди рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЕрдзрд┐рдХ, рдпрд╣рд╛рдБ рдХреБрдЫ рдЧрд▓рдд рд╣реИ - рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдХреЛрдИ рдФрд░ рдПрди рд╕рдХреНрд░рд┐рдп рд░рд┐рдЯреНрд░реАрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛рдиреА рд░рд┐рдЯреНрд░реАрдЬ рдЬреЛ рдЕрднреА рд╣реЛ рд░рд╣реА рд╣реИрдВ)ред

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

рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд┐рдВрдЧ [рджреВрдд]

  • рдХреНрд▓рд╕реНрдЯрд░ (рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рдореВрд╣) рдЕрдзрд┐рдХрддрдо рдХрдиреЗрдХреНрд╢рди
  • рдХреНрд▓рд╕реНрдЯрд░ рдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд┐рдд рдЕрдиреБрд░реЛрдз
  • рдХреНрд▓рд╕реНрдЯрд░ рдЕрдзрд┐рдХрддрдо рдЕрдиреБрд░реЛрдз
  • рдХреНрд▓рд╕реНрдЯрд░ рдЕрдзрд┐рдХрддрдо рд╕рдХреНрд░рд┐рдп рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕

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

рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░: рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡


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

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

( , ) , , .

nginx limit req. , , , 200 RPS. , , , limit req.

TCP HTTP ( nginx limit req). . limit req .

, , . Circuit breaker, , N , , - , , . , , spool .

Circuit breaker + request cancellation ( ). , N Cassandra, N Elastic, , тАФ , . тАФ , .





, (: тАФ ┬л┬╗, тАФ ┬л┬╗). , 800 RPS 20-30. ┬л┬╗, , .



тАФ , .

, , тАФ . .

, , , , Health checks тАФ HTTP 200.

.



Load Balancer, 3 , Cassandra. Cassandra, Cassandra , Cassandra data noda.

тАФ : kernel: NETDEV WATCHDOG: eth0 (ixgbe): transmit queue 3 timed out.

: ( ), 64 . , 1/64 . reboot, .

, , , . , , , . , , . , .

Cassandra: coordinator -> nodes

Cassandra, (speculative retries), . latency 99 , .

App -> cassandra coordinator

. Cassandra ┬л┬╗ , , , latency ..

gocql тАФ cassandra client. . HostSelectionPolicy, bitly/go-hostpool . Epsilon greedy , .

, Epsilon-greedy .

(multi-armed bandit): , , N .

:

  1. ┬л explore┬╗ тАФ : 10 , , .
  2. ┬л exploit┬╗ тАФ .

, (10 тАФ 30%) round - robin , , , . 70 тАФ 90% .

Host-pool . . ( тАФ , , ). . , , , .


┬л┬╗ () тАФCassandra Cassandra coordinator-data. (nginx, Envoy тАФ ) ┬л┬╗ Application, Cassandra , , .

Envoy Outlier detection :

  • Consecutive http-5xx.
  • Consecutive gateway errors (502,503,504).
  • Success rate.

┬л┬╗ , - , . , . тАФ , , . , , .

, ┬л┬╗, max_ejection_percent. , outlier, . , 70% тАФ , тАФ , !

, тАФ !



, , . , latency , :

  • , ..
  • , -, .

, , . , , , тАФ , .

. 99% nginx/ HAProxy /Envoy. proxy , ┬л┬╗.

proxy ( HAProxy:)), , .

DevOpsConf Russia Kubernetes . .

, тАФ DevOps.

, , YouTube- тАФ .

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


All Articles