рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 1. рдкрд░рд┐рдЪрдп. рдПрд░рд▓рд╛рдВрдЧ, рдПрдПрдордХреНрдпреВрдкреА

рд╢реБрдн рджреЛрдкрд╣рд░, рд╣рдмрд░! рдореИрдВ рдЬреНрдЮрд╛рди рдХреА рдПрдХ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ-рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ RabbitMQ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдХрд░реЗрдВред

рд▓реЗрдЦ-рд╕реВрдЪреА

  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 1. рдкрд░рд┐рдЪрдп. рдПрд░рд▓рд╛рдВрдЧ, рдПрдПрдордХреНрдпреВрдкреА рдФрд░ рдЖрд░рдкреАрд╕реА
  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 2. рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЛ рд╕рдордЭрдирд╛
  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 3. рдХрддрд╛рд░реЛрдВ рдФрд░ рдмрдВрдзрдиреЛрдВ рдХреЛ рд╕рдордЭрдирд╛
  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 4. рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ рд╕рдВрджреЗрд╢ рдФрд░ рдлрд╝реНрд░реЗрдо рдХреНрдпрд╛ рд╣реИрдВ
  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 5: рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд╢рди рдФрд░ рдЙрдкрднреЛрдЧ рдкреНрд░рджрд░реНрд╢рди
  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 6. рдлреЗрдбрд░реЗрд╢рди рдФрд░ рдлрд╛рд╡рдбрд╝рд╛ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рдореАрдХреНрд╖рд╛
  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 7. рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЪреИрдирд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг
  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 8. .NET рдореЗрдВ RabbitMQ
  • рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 9. рдирд┐рдЧрд░рд╛рдиреА

рдПрдПрдордХреНрдпреВрдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ

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

рдкреНрд░реЛрдЯреЛрдХреЙрд▓ AMQP рддреАрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ:

рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 1. рдкрд░рд┐рдЪрдп. рдПрд░рд▓рд╛рдВрдЧ, рдПрдПрдордХреНрдпреВрдкреА

  • exchange (рд╡рд┐рдирд┐рдордп рдмрд┐рдВрджреБ рдпрд╛ рд╡рд┐рдирд┐рдордп) - рдЗрд╕ рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд┐рдирд┐рдордп рдмрд┐рдВрджреБ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХрддрд╛рд░реЛрдВ рдореЗрдВ. рд╡рд╣ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдПрдХ рдХрддрд╛рд░ рдореЗрдВ рд░реВрдЯ рдХрд░рддрд╛ рд╣реИ рдмрдирд╛рдП рдЧрдП рдХрдиреЗрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (binding) рдЙрд╕рдХреЗ рдФрд░ рдХрддрд╛рд░ рдХреЗ рдмреАрдЪ
  • queue (рдХрддрд╛рд░) - рдбрд┐рд╕реНрдХ рдкрд░ рдпрд╛ рд░реИрдо рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рджреЗрддрд╛ рд╣реИ consumers (рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП)
  • binding (рдмрд╛рдзреНрдпрдХрд╛рд░реА) - рдПрдХ рдирд┐рдпрдо рдХрд┐ рд╡рд┐рдирд┐рдордп рдмрд┐рдВрджреБ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХрд┐рд╕ рдХрддрд╛рд░ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╢реАрд░реНрд╖ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА.

рдПрд░реНрд▓рд╛рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣реИ GitHub. рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ RabbitMQ-рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд Erlang рдФрд░ рдмреАрдо.

Erlang рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд Ericsson 1980 рдХреЗ рджрд╢рдХ рдХреЗ рдордзреНрдп рдореЗрдВ 99,999% рдЕрдкрдЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рддрд░рд┐рдд, рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВред Erlang рд╡рд┐рднрд┐рдиреНрди рдЙрджреНрдпреЛрдЧреЛрдВ рдФрд░ рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ WhatsApp. рдЖрдк рд▓реЗрдЦ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░, рдЬрд┐рд╕реЗ рдлреЗрд╕рдмреБрдХ рдиреЗ 19 рдмрд┐рд▓рд┐рдпрди рдбреЙрд▓рд░ рдореЗрдВ рдЦрд░реАрджрд╛ рдерд╛

RabbitMQ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ

RabbitMQ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдВрджреЗрд╢ рджрд▓рд╛рд▓ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд░реВрдЯ рдХрд░рддрд╛ рд╣реИ рдПрдПрдордХреНрдпреВрдкреА рд╡рд░реНрдгрди рдХрд░реЗрдВ рд╡рд┐рдирд┐рд░реНрджреЗрд╢. RabbitMQ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдФрд░ рдкреВрд░рдХ рдХрд░рддрд╛ рд╣реИ AMQP.

рдореИрд╕реЗрдЬрд┐рдВрдЧ рдореЙрдбрд▓ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ RabbitMQ рдмрд╛рдд рдРрд╕реА рд╣реИ producer (рдкреНрд░рдХрд╛рд╢рдХ) рд╕реАрдзреЗ рдХрддрд╛рд░ рдореЗрдВ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рднреЗрдЬрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдФрд░ рдЕрдХреНрд╕рд░, рдкреНрд░рдХрд╛рд╢рдХ рдХреЛ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдХрд┐рд╕реА рдХрддрд╛рд░ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдирд╣реАрдВред

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

рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 1. рдкрд░рд┐рдЪрдп. рдПрд░рд▓рд╛рдВрдЧ, рдПрдПрдордХреНрдпреВрдкреА

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд╛рд░реНрдп RabbitMQ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

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

рдЖрд░рдкреАрд╕реА

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрд░рдкреАрд╕реА (рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓) рдирд╛рднрд┐рдХ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рд╕рднреА рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЖрдзрд╛рд░ рдмрдирддрд╛ рд╣реИ RabbitMQ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреНрд░рд╛рд╣рдХ рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░реНрдЪрд╛ RabbitMQ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ RPC. рдПрдХ рдмрд╛рд░ рдпрд╣ рдХреНрд░рдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рддреЛ RabbitMQ рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛:

рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 1. рдкрд░рд┐рдЪрдп. рдПрд░рд▓рд╛рдВрдЧ, рдПрдПрдордХреНрдпреВрдкреА

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

рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЪреИрдирд▓

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

рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдИ рдЪреИрдирд▓ рдЦреЛрд▓рдиреЗ рд╣реЛрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдПрдХ рдЕрд▓рдЧ рдмрдирд╛рддрд╛ рд╣реИ Erlang рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рдПрдХ рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдХрдИ рдЪреИрдирд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдмрд╣реБрд╕рдВрдХреЗрддрди). рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдореЗрдВ рдХреБрдЫ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рднреАрддрд░ рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдЪреИрдирд▓ рд╣реЛрдВрдЧреЗ RabbitMQ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдРрд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП.

рдЦрд░рдЧреЛрд╢рдПрдордХреНрдпреВред рднрд╛рдЧ 1. рдкрд░рд┐рдЪрдп. рдПрд░рд▓рд╛рдВрдЧ, рдПрдПрдордХреНрдпреВрдкреА

рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЪреИрдирд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг RabbitMQ.рдЧреНрд░рд╛рд╣рдХ:

// ...
private void TryConnect()
{
    var factory = new ConnectionFactory() 
    {
        HostName = "host_name",
        UserName = "user_name",
        Password = "p@ssword",
        // ╨Т╨║╨╗╤О╤З╨╡╨╜╨╕╨╡ ╨░╨▓╤В╨╛╨╝╨░╤В╨╕╤З╨╡╨║╨╛╨│╨╛ ╨▓╨╛╤Б╤Б╤В╨░╨╜╨╛╨▓╨╗╨╡╨╜╨╕╤П
        // ╤Б╨╛╨╡╨┤╨╕╨╜╨╡╨╜╨╕╤П ╨┐╨╛╤Б╨╗╨╡ ╤Б╨▒╨╛╨╡╨▓ ╤Б╨╡╤В╨╕ 
        AutomaticRecoveryEnabled = true
    };
    _connection = factory.CreateConnection();
}
// ...
public void CreateChanel()
{
    _channel = _connection.CreateModel();
    // other options 
}

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

RabbitMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдБ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ AMQP рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди RabbitMQ рдЕрдХреНрд╕рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмрд╛рддрдЪреАрдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ.

рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ IIOT рдкреНрд░реЛрдЯреЛрдХреЙрд▓ AMQP рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди RabbitMQ рд╕рд░реНрд╡рд░ (рд╕рд░реНрд╡рд░-рд╕рд░реНрд╡рд░) рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд▓рдЧрдЗрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдПрдордХреНрдпреВрдЯреАрдЯреА рдкреНрд▓рдЧрдЗрди рд░реИрдмрд┐рдЯрдПрдордХреНрдпреВ рдЬреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ MQTT рдХрдо рдЧрддрд┐, рдЙрдЪреНрдЪ рд╡рд┐рд▓рдВрдмрддрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реЗрдВрд╕рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рд╕рдорд░реНрдерд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИ) рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд▓).

рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдПрдХреНрд╕рдЪреЗрдВрдЬреЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред

рд╕рдВрджрд░реНрднреЛрдВ

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ