рд╕рднреА рд╕рдмрд╕реЗ рдлреИрд╢рдиреЗрдмрд▓

рдирдИ, рд╕рд░рд▓, рддреЗрдЬрд╝ рдФрд░ рдорд╛рдкрдиреАрдп рддрдХрдиреАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЙрди рд╕рднреА рдХреЛ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЕрдЪрд╛рдирдХ рд╡реЗ рдореЗрд░реЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд postgresql + django + json-rpc рдмрдВрдбрд▓ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрдВрдЧреЗред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рдЪрд╛рд░


рдЪреВрдВрдХрд┐ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдореБрдлреНрдд рдбреЛрдореЗрди uglyrater.org рдерд╛ - рдореБрдЭреЗ рдПрдХ рд░реЗрдЯрд┐рдВрдЧ рдмрдирд╛рдиреА рдереАред
рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рд╕рд░рд▓ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЖрдк + рдФрд░ - рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡реАрдХреЗ рдкреГрд╖реНрда рдкрддреЗ рдкрд░ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЪреЗрддрд╛рд╡рдиреА! рд▓реЗрдЦ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдЖрдХрд▓рди рд╣реИ!

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди





рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЬрдЯрд┐рд▓ рд╣реЛрдирд╛ рдкрдбрд╝рд╛, рдЕрдиреНрдпрдерд╛ рд╕рдм рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рдереАред рд╕рд╛рде рд╣реА, vk api рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд╛рдлреА рд▓рдВрдмрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ MQ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд┐рдХрд▓реНрдк RabbitMQ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ AMQP "рдмреЗрдХрд╛рд░ рд╣реИ", тАЬ MQ "рд╣рдорд╛рд░рд╛ рд╕рдм рдХреБрдЫ", рд▓реЗрдХрд┐рди zeromq рдХреЗ рд╕рд╛рде рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред
RabbitMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд┐рдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ / рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреНрдпреВрдирддрдо рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЖрдк рдЗрд╕реЗ "рдХрд╛рд░реНрдпрдХрд░реНрддрд╛" рдФрд░ рдЗрд╕рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдЬрд╝реЗрд░реЛрдХрд┐рд╕ рдФрд░ toMQ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рд╕реА рддреБрд▓рдирд╛ рджрд┐рдЦрд╛рдИ рджреА:
RabbitMQ├ШMQZerocIce
рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВрдХреЛрдб рдХреА рдПрдХ рдЫреЛрдЯреА рд░рд╛рд╢рд┐;
рдХрд╛рдо рдХреА рд╕рд╛рджрдЧреА;
рдЧрддрд┐;
рджреЗрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рднреЗрдЬрдирд╛;
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рджрд╛рдирд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ;
рджреВрд░рд╕реНрде рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
рдкреНрд░рддрд┐ рд╕реЙрдХреЗрдЯ рдХреА рдХрдореА;
рд╕рдВрдХреЗрдд / рд╕реНрд▓реЙрдЯ;
рд╡рд┐рдкрдХреНрд╖рдбреЗрдореЙрди рд▓реЙрдиреНрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛;рд░рд╛рдЙрдЯрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ;
рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб;
рд▓реЗрдЦрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реНрд▓рд╛рдЗрд╕;
рдбреЗрдорди рд▓реЙрдиреНрдЪ рдЖрд╡рд╢реНрдпрдХ (рдЖрдЗрд╕рдмреЙрдХреНрд╕);
рдЬрдЯрд┐рд▓рддрд╛;

рдФрд░ рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, RabbitMQ рдФрд░ fitMQ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реИрдВ, рдФрд░ ZerocIce рдЧреМрд░реИрдпрд╛ рдкрд░ рдПрдХ рддреЛрдк рдХреА рддрд░рд╣ рд╣реИред

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

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

рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдзрдХреНрдХрд╛ рдХреА рд╡рдЬрд╣ рд╕реЗ, рдмрд╡рдВрдбрд░ рд╡рд┐рдХрд▓реНрдк рдЕрднреА рднреА рдмреЗрд╣рддрд░ рд╣реИред

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

рддреИрдирд╛рддреА


рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореИрдВрдиреЗ рдорд╛рдирдХ рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдм рдХреБрдЫ nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛:



рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдирдЧреАрдирдХреНрд╕ рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ 3 рд╕рдорд╛рдзрд╛рди рдереЗ:
  1. рдЕрд╕реНрдерд┐рд░ nginx рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
    рдЙрдмрдВрдЯреВ рдХреЗ рд▓рд┐рдП рдкреАрдкрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕рдореЗрдВ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди http рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдмрдВрдж рд╣реЛ рдЧрдпрд╛, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдФрд░ рдЪреВрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдореЗрдВ рдРрд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рднрдВрдбрд╛рд░ рднреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдЬрд▓реНрджреА рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ред
  2. Tcp рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде nginx рдмрдирд╛рдПрдБред
    рдПрдХ рд╕рд░рд▓ рдирд┐рд░реНрджреЗрд╢ рдкрд╛рдХрд░ , рд╕рдм рдХреБрдЫ рдЗрдХрдЯреНрдард╛ рд╣реЛ рдЧрдпрд╛ред рд╕рднреА рдкреБрд░рд╛рдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рд╣реЛ рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ, рдпрд╛ рддреЛ рдореИрдВрдиреЗ рдХрд╣реАрдВ рдЧрд▓рддреА рдХреА, рдпрд╛ рдХреБрдЫ рдФрд░, рд▓реЗрдХрд┐рди рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдиреЗ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╡рд┐рдХрд▓реНрдк рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  3. HAProxy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
    рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдПрдХ рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рде рдПрдХ рдпреЛрдЬрдирд╛ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рддрд╕реНрд╡реАрд░ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ:



    рдЙрд╕рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╢реБрд░реВ рд╣реБрдЖ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

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


рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╢рд╛рдВрдд, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рддреЗрдЬрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХрдИ рдерд╛рдиреЗрджрд╛рд░ рд╣реИрдВред рдПрдХ рддреИрдирд╛рддреА рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдЬрд╛рдо, рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред

рдХреЛрдб рдХреЗ рд╕рд╛рде github
рдЙрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рдореЗрдВред

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


All Articles