RabbitMQред рднрд╛рдЧ рез. рдкрд░рд┐рдЪрдпред Erlang, AMQP

рдирдорд╕реНрддреЗ, рд╣рдмрд░! рдореИрд▓реЗ рдЬрдореНрдорд╛ рдЧрд░реЗрдХреЛ рдЬреНрдЮрд╛рдирдХреЛ рдПрдЙрдЯрд╛ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ-рд╕рдиреНрджрд░реНрдн рдкреБрд╕реНрддрдХ рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдмрд╛рдБрдбреНрди рдЪрд╛рд╣рдиреНрдЫреБред RabbitMQ рд░ рдЫреЛрдЯреЛ рд╕рд┐рдлрд╛рд░рд┐рд╕ рд░ рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕рд╛рдордЧреНрд░реАрдХреЛ рддрд╛рд▓рд┐рдХрд╛

  • RabbitMQред рднрд╛рдЧ рез. рдкрд░рд┐рдЪрдпред Erlang, AMQP рд░ RPC
  • RabbitMQред рднрд╛рдЧ 2. рдПрдХреНрд╕рдЪреЗрдиреНрдЬрд╣рд░реВ рдмреБрдЭреНрджреИ
  • RabbitMQред рднрд╛рдЧ 3. рд▓рд╛рдорд╣рд░реВ рд░ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рдмреБрдЭреНрджреИ
  • RabbitMQ. рднрд╛рдЧ рек. рд╕рдиреНрджреЗрд╢ рд░ рдлреНрд░реЗрдорд╣рд░реВ рдмреБрдЭреНрдиреЗ
  • RabbitMQред рднрд╛рдЧ рел: рд╕рдиреНрджреЗрд╢ рдкреНрд░рдХрд╛рд╢рди рд░ рдЙрдкрднреЛрдЧ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди
  • RabbitMQред рднрд╛рдЧ 6. рдорд╣рд╛рд╕рдВрдШ рд░ рдлрд╛рд╡рдбрд╛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдХреЛ рд╕рдореАрдХреНрд╖рд╛
  • RabbitMQред рднрд╛рдЧ 7. рдЬрдбрд╛рди рд░ рдЪреНрдпрд╛рдирд▓ рдмрд╛рд░реЗ рд╡рд┐рд╡рд░рдгрд╣рд░реВ
  • RabbitMQред рднрд╛рдЧ 8. .NET рдорд╛ RabbitMQ
  • RabbitMQред рднрд╛рдЧ 9. рдЕрдиреБрдЧрдорди

AMQP рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрддрдорд╛

AMQP (рдЙрдиреНрдирдд рд╕рдиреНрджреЗрд╢ рдХреНрдпреБрдЗрдЩ рдкреНрд░реЛрдЯреЛрдХрд▓) рдкреНрд░рдгрд╛рд▓реА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдмреАрдЪ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкреНрд░рд╕рд╛рд░рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЦреБрд▓рд╛ рдкреНрд░реЛрдЯреЛрдХрд▓ рд╣реЛред рдЖрдзрд╛рд░рднреВрдд рд╡рд┐рдЪрд╛рд░ рдпреЛ рд╣реЛ рдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ (рд╡рд╛ рд╕реНрд╡рддрдиреНрддреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ) рд▓реЗ AMQP рдмреНрд░реЛрдХрд░ рдорд╛рд░реНрдлрдд рдордирдорд╛рдиреА рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЖрджрд╛рдирдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рдЬрд╕рд▓реЗ рд░рд╛рдЙрдЯрд┐рдЩ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдЫ, рд╕рдореНрднрд╡рддрдГ рдбреЗрд▓рд┐рднрд░реАрдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░реНрдЫ, рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рд┐рдорд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрдЫ, рд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдиреНрджреЗрд╢ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдорд╛ рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдиреНрдЫред

рдкреНрд░реЛрдЯреЛрдХрд▓ AMQP рддреАрди рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрджрдЫ:

RabbitMQред рднрд╛рдЧ рез. рдкрд░рд┐рдЪрдпред Erlang, AMQP

  • exchange (рд╡рд┐рдирд┐рдордп рдмрд┐рдиреНрджреБ рд╡рд╛ рд╡рд┐рдирд┐рдордп) - рдпрд╕рдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЗрдиреНрдЫред рд╡рд┐рдирд┐рдордп рдмрд┐рдиреНрджреБ рд╕рдиреНрджреЗрд╢ рд╡рд┐рддрд░рдг рдЧрд░реНрджрдЫ рдПрдХ рд╡рд╛ рдмрдвреА рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ред рдЙрдиреА рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рд▓рд╛рдЗрдирдорд╛ рдкрдард╛рдЙрдБрдЫ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЬрдбрд╛рдирд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд (binding) рдЙрд╕рдХреЛ рд░ рд▓рд╛рдордХреЛ рдмреАрдЪрдорд╛
  • queue (рдХреНрдпреБ) рдбрд┐рд╕реНрдХ рд╡рд╛ RAM рдорд╛ рд░рд╣реЗрдХреЛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реЛ рдЬреБрди рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рд┐рдЩреНрдХрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрджрдЫ рд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рд╣рд░реВ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрджрдЫред consumers (рдЙрдкрднреЛрдХреНрддрд╛рд╣рд░реВрд▓рд╛рдИ)
  • binding (рдмрд╛рдзреНрдпрдХрд╛рд░реА) - рдПрдЙрдЯрд╛ рдирд┐рдпрдо рдЬреБрди рдпреА рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдХреБрди рдХреНрдпреБрдорд╛ рдЬрд╛рдиреБрдкрд░реНрдЫ рднрдиреЗрд░ рд╡рд┐рдирд┐рдордп рдмрд┐рдиреНрджреБрд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫ

рдкреНрд░реЛрдЯреЛрдХрд▓ рдорд╛рдерд┐ рдЪрд▓реНрдЫ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА.

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

рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рднрдгреНрдбрд╛рд░рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ GitHubрд╡рд╛рд╕реНрддреБрдХрд▓рд╛ RabbitMQ-рд╕рд░реНрднрд░ рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдПрд░рд▓рд╛lang рд░ рдмреАрдоред

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

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

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

рд╕рдиреНрджреЗрд╢ рдореЛрдбреЗрд▓рдХреЛ рдЖрдзрд╛рд░рднреВрдд рд╡рд┐рдЪрд╛рд░ RabbitMQ рдХреЗ рддреНрдпреЛ рд╣реЛ? producer (рдкреНрд░рдХрд╛рд╢рдХ) рд▓реЗ рд╕рд┐рдзреИ рд▓рд╛рдЗрдирдорд╛ рд╕рдиреНрджреЗрд╢ рдкрдард╛рдЙрдБрджреИрдиред рд╡рд╛рд╕реНрддрд╡рдорд╛, рд░ рдзреЗрд░реИрдЬрд╕реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдкреНрд░рдХрд╛рд╢рдХрд▓рд╛рдИ рд╕рдиреНрджреЗрд╢ рдХреБрдиреИ рдкрдирд┐ рд▓рд╛рдЗрдирдорд╛ рдбреЗрд▓рд┐рднрд░ рд╣реБрдиреНрдЫ рдХрд┐ рд╣реБрдБрджреИрди рднрдиреНрдиреЗ рдкрдирд┐ рдерд╛рд╣рд╛ рд╣реБрдБрджреИрдиред

рдмрд░реБ, рдкреНрд░рдХрд╛рд╢рдХрд▓реЗ рдПрдХреНрд╕рдЪреЗрдиреНрдЬрдорд╛ рдорд╛рддреНрд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрди рд╕рдХреНрдЫред рдПрдХреНрд╕рдЪреЗрдиреНрдЬрд▓реЗ рдкреНрд░рдХрд╛рд╢рдХрд╣рд░реВрдмрд╛рдЯ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХреНрдпреБрдорд╛ рдкрдард╛рдЙрдБрдЫред рдПрдХреНрд╕рдЪреЗрдиреНрдЬрд▓рд╛рдИ рдкреНрд░рд╛рдкреНрдд рд╕рдиреНрджреЗрд╢рд╕рдБрдЧ рдХреЗ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдареНрдпрд╛рдХреНрдХреИ рдерд╛рд╣рд╛ рд╣реБрдиреБрдкрд░реНрдЫред рдХреЗ рдпрд╕рд▓рд╛рдИ рд╡рд┐рд╢реЗрд╖ рдХреНрдпреБрдорд╛ рдердкреНрдиреБ рдкрд░реНрдЫ? рдХреЗ рдпрд╕рд▓рд╛рдИ рдзреЗрд░реИ рдХреНрдпреБрдорд╛ рдердкреНрдиреБ рдкрд░реНрдЫ? рд╡рд╛ рд╕рдиреНрджреЗрд╢рд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫред

RabbitMQред рднрд╛рдЧ рез. рдкрд░рд┐рдЪрдпред Erlang, AMQP

рдХрд╛рдордХреЛ рдмрд╛рд░реЗрдорд╛ рдЫреЛрдЯрдХрд░реАрдорд╛ RabbitMQ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

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

Rpc

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

RabbitMQред рднрд╛рдЧ рез. рдкрд░рд┐рдЪрдпред Erlang, AMQP

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

рдЬрдбрд╛рди рд░ рдЪреНрдпрд╛рдирд▓рд╣рд░реВ

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

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

RabbitMQред рднрд╛рдЧ рез. рдкрд░рд┐рдЪрдпред Erlang, AMQP

рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬрдбрд╛рди рд░ рдЪреНрдпрд╛рдирд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг RabbitMQ.Client:

// ...
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 рдкреНрд▓рдЧрдЗрди RabbitMQ рдЬреБрди рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ MQTT рдХрдо-рдЧрддрд┐, рдЙрдЪреНрдЪ-рд╡рд┐рд▓рдореНрдмрддрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рд╕реЗрдиреНрд╕рд░ рд░ рд╕рд░реНрднрд░ рдмреАрдЪ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ (рд╕рдорд░реНрдерд┐рдд рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реВрдЪреА рд╕реВрдЪреАрдмрджреНрдз рдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ).

рдЕрд░реНрдХреЛ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА рдПрдХреНрд╕рдЪреЗрдиреНрдЬрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫреМрдВред

рд╕рдиреНрджрд░реНрдн

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди