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

рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЬрдЯрд┐рд▓ рд╣реЛрдирд╛ рдкрдбрд╝рд╛, рдЕрдиреНрдпрдерд╛ рд╕рдм рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рдереАред рд╕рд╛рде рд╣реА, vk api рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд╛рдлреА рд▓рдВрдмрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ MQ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд┐рдХрд▓реНрдк
RabbitMQ рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ AMQP "рдмреЗрдХрд╛рд░ рд╣реИ", тАЬ
MQ "рд╣рдорд╛рд░рд╛ рд╕рдм рдХреБрдЫ", рд▓реЗрдХрд┐рди zeromq рдХреЗ рд╕рд╛рде рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред
RabbitMQ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдкрд┐рдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ / рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреНрдпреВрдирддрдо рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЖрдк рдЗрд╕реЗ
"рдХрд╛рд░реНрдпрдХрд░реНрддрд╛" рдФрд░ рдЗрд╕рдХреЗ
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП
рдЬрд╝реЗрд░реЛрдХрд┐рд╕ рдФрд░ toMQ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рд╕реА рддреБрд▓рдирд╛ рджрд┐рдЦрд╛рдИ рджреА:
| RabbitMQ | ├ШMQ | ZerocIce |
---|
рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВ | рдХреЛрдб рдХреА рдПрдХ рдЫреЛрдЯреА рд░рд╛рд╢рд┐; рдХрд╛рдо рдХреА рд╕рд╛рджрдЧреА; | рдЧрддрд┐; рджреЗрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рднреЗрдЬрдирд╛; рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рджрд╛рдирд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ; | рджреВрд░рд╕реНрде рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛; рдкреНрд░рддрд┐ рд╕реЙрдХреЗрдЯ рдХреА рдХрдореА; рд╕рдВрдХреЗрдд / рд╕реНрд▓реЙрдЯ; |
рд╡рд┐рдкрдХреНрд╖ | рдбреЗрдореЙрди рд▓реЙрдиреНрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛; | рд░рд╛рдЙрдЯрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ; рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб; | рд▓реЗрдЦрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реНрд▓рд╛рдЗрд╕; рдбреЗрдорди рд▓реЙрдиреНрдЪ рдЖрд╡рд╢реНрдпрдХ (рдЖрдЗрд╕рдмреЙрдХреНрд╕); рдЬрдЯрд┐рд▓рддрд╛; |
рдФрд░ рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, RabbitMQ рдФрд░ fitMQ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реИрдВ, рдФрд░ ZerocIce рдЧреМрд░реИрдпрд╛ рдкрд░ рдПрдХ рддреЛрдк рдХреА рддрд░рд╣ рд╣реИред
рдЕрдм рдкреНрд░рд╛рдкреНрдд рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рдХрд╣реАрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдм рдиреЛрд╕рдХрд▓ рдлреИрд╢рдиреЗрдмрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП
рдореЛрдВрдЧреЛрдбрдм рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП orm рдХреЗ рд╕рд╛рде postgresql рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕реНрдорд╛рд░реНрдЯ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрддрд╛рд░ рдЖ рдЧрдИ рд╣реИред рдЕрдм рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдкреБрд╢ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рддрдХ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
рдмрд╡рдВрдбрд░ рдФрд░
рдЯреЙрд░реНрдирд╛рдбрд┐рдУ 2 рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ , рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ
рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣рдм рдкрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд▓рд┐рдЦрд╛ рдерд╛ рдлрд┐рд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рддреБрд░рдВрдд рдирд┐рдХрд▓ рдЧрдИ, tornadio2 рд╕реЗ рдХреБрдХреАрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд╕реЙрдХреЗрдЯрд┐рдпреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ "рдЧреБрдкреНрдд" рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдЖрдИрдбреА рднреЗрдЬрдиреЗ рд╕реЗ рдмреИрд╕рд╛рдЦреА рдХреЛ рд░реЛрдХрдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ django + json-rpc рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рд╕реА рддреБрд▓рдирд╛ рдорд┐рд▓реА:
| рдмрд╡рдВрдбрд░ + рдмрд╡рдВрдбрд░ | django + json-rpc |
---|
рдЖрдХрд░реНрд╖рдг рдЖрддреЗ рд╣реИрдВ | рд╕рд░реНрд╡рд░ рд╕реЗ рдзрдХреНрдХрд╛; рд╣рд▓реНрдХрд╛рдкрди; рдЧрддрд┐; | рд╕рд╛рджрдЧреА; рдорд╛рдирдХреАрдХреГрдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓; |
рд╡рд┐рдкрдХреНрд╖ | рдЬрдЯрд┐рд▓рддрд╛; рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде "рд╡рдХреНрд░" рдХрд╛рдо; | рдХреБрд░реВрдкрддрд╛; рдзрдХреНрдХрд╛ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рдзрд┐рдХ рдЕрдиреБрд░реЛрдз; |
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдзрдХреНрдХрд╛ рдХреА рд╡рдЬрд╣ рд╕реЗ, рдмрд╡рдВрдбрд░ рд╡рд┐рдХрд▓реНрдк рдЕрднреА рднреА рдмреЗрд╣рддрд░ рд╣реИред
рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рднреА рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рдЖрдпрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдмрд╕
рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ ,
рдПрдЪрдПрдордПрд▓ рдФрд░
рдПрд╕рдПрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдХреА рдмрд╣реБрдд рд╕рд╛рд░реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реАред
рддреИрдирд╛рддреА
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореИрдВрдиреЗ рдорд╛рдирдХ рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдм рдХреБрдЫ nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛:

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

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