MonsterMQ рднрд╛рдЧ 3 рдХреЗ рд╕рд╛рде RabbitMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

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

рдПрдХреНрд╕рдЪреЗрдВрдЬ (рдПрдХреНрд╕рдЪреЗрдВрдЬ)


рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдХрддрд╛рд░реЛрдВ рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП, рдЕрдм рдпрд╣ рдЦрд░рдЧреЛрд╢рдмрд┐рдЯрдо рдореЗрдВ рдПрдХ рдкреВрд░реНрдг рд╕рдВрджреЗрд╢ рдЕрдЧреНрд░реЗрд╖рдг рдореЙрдбрд▓ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдЖрдЗрдП рдЬрд▓реНрджреА рд╕реЗ рд╣рдо рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ:

  • рдирд┐рд░реНрдорд╛рддрд╛ - рдПрдХ рдЖрд╡реЗрджрди рдЬреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ
  • рдХрддрд╛рд░ - рдПрдХ рдмрдлрд░ рдЬреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
  • рдЙрдкрднреЛрдХреНрддрд╛ - рдПрдХ рдЖрд╡реЗрджрди рдЬреЛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ

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

рдЫрд╡рд┐
( RabbitMQ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рд▓реА рдЧрдИ рдЫрд╡рд┐ )

рдЖрдЗрдП рдПрдХ рдХрдЯреНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХреНрд╕рдЪреЗрдВрдЬрд░ рдХреЛ рджреЗрдЦреЗрдВред рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд▓рд┐рдЦреЗрдВ:

$producer->newFanoutExchange('logs');

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

рд╕рд░реНрд╡рд░ рдкрд░ рдореМрдЬреВрдж рд╕рднреА рдПрдХреНрд╕рдЪреЗрдВрдЬрд░реНрд╕ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, rabbitmqctl рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ

sudo rabbitmqctl list_exchanges

рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдПрдордХ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ ред * рдПрдХреНрд╕рдЪреЗрдВрдЬрд░реНрд╕ рдФрд░ рдПрдХ рдорд╛рдирдХ рдирд╛рдо рд░рд╣рд┐рдд (рдЦрд╛рд▓реА рд▓рд╛рдЗрди) рдПрдХреНрд╕рдЪреЗрдВрдЬрд░ред рдЙрди рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ рд╣рдореЗрдВ рдЕрднреА рддрдХ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

рдЕрдм рд╣рдо рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдирдП рдПрдХреНрд╕рдЪреЗрдВрдЬрд░ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ :: рдкреНрд░рдХрд╛рд╢рди () рд╡рд┐рдзрд┐ :

$producer->publish($message, '', 'logs');

рдЕрдм рджреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджреЛ рдХрддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рддрдм рддрдХ рдореМрдЬреВрдж рд░рд╣реЗрдВрдЧреЗ рдЬрдм рддрдХ рдХрд┐ рдЬрд┐рди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдШреЛрд╖рдгрд╛ рдХреА рдереА рд╡реЗ рд╕рдХреНрд░рд┐рдп рд╣реИрдВред рдЖрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

//Worker 1
$producer->queue('queue-1')->setExclusive()->declare();

//Worker 2
$producer->queue('queue-2')->setExclusive()->declare();

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

рд╣рдо рдХрддрд╛рд░ рдХреЛ рдПрдХреНрд╕рдЪреЗрдВрдЬрд░ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ


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

//Worker 1
$producer->queue('queue-1')->bind('logs');

//Worker 2
$producer->queue('queue-2')->bind('logs');

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

рдЖрдк рд▓рд┐рдирдХреНрд╕ рдкрд░ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рднреА рдореМрдЬреВрджрд╛ рд▓рд┐рдВрдХ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

rabbitmqctl list_bindings

рдХреЛрдб рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛


рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рдорд╛рд░реА рдкреНрд░реЗрд╖рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрд╣реБрдд рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рдкрд╣рд▓реЗ рдШреЛрд╖рд┐рдд рдПрдХреНрд╕рдЪреЗрдВрдЬрд░ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдорд╛рдирдХ рдПрдХ (рдмреЙрдХреНрд╕ рд╕реЗ рд╕реБрд▓рдн) рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдпрд╣рд╛рдБ Send.php рдХреЛрдб рд╣реИ

try {
   $producer = \MonsterMQ\Client\Producer();

   $producer->connect('127.0.0.1', 5672);
   $producer->logIn('guest', 'guest');

   $producer->newFanoutExchange('logs');

   $message = implode(' ', array_slice($argv, 1));
   $message = empty($message) ? 'Hello world!' : $message;

   $producer->publish($message, '', 'logs');

   echo "\n Sent {$message} \n";
} catch(\Exception $e) {
   var_dump($e);
}

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

рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ- 1. рдПрдлрдкреА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛

try {
   $consumer = \MonsterMQ\Client\Consumer();

   $consumer->connect('127.0.0.1', 5672);
   $consumer->logIn('guest', 'guest');

   $producer->queue('queue-1')->setExclusive()->declare();
   $producer->queue('queue-1')->bind('logs');

   $consumer->consume('queue-1');

   $consumer->wait(function ($message, $channelNumber) use ($consumer){
      echo "\n $message \n";
   });
} catch(\Exception $e) {
   var_dump($e);
}

рдпрд╣рд╛рдВ рджреВрд╕рд░реЗ рд╡рд░реНрдХрд░-2. рдПрдлрдкреА рд╡рд░реНрдХрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

try {
   $consumer = \MonsterMQ\Client\Consumer();

   $consumer->connect('127.0.0.1', 5672);
   $consumer->logIn('guest', 'guest');

   $producer->queue('queue-2')->setExclusive()->declare();
   $producer->queue('queue-2')->bind('logs');

   $consumer->consume('queue-2');

   $consumer->wait(function ($message, $channelNumber) use ($consumer){
      echo "\n $message \n";
   });
} catch(\Exception $e) {
   var_dump($e);
}

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреЙрд▓ рдХрд░реЗрдВ:

php worker-1.php > logs_from_rabbit.log

рджреЛрдиреЛрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреА рдЦрд┐рдбрд╝рдХреА рдореЗрдВ:

php worker-1.php

php worker-2.php

рдФрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢ рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ:

php send.php

рдореЗрдВ рдЕрдЧрд▓реЗ рдкрд╛рда, рд╣рдо рдХреИрд╕реЗ рдХреЗрд╡рд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢реЛрдВ рд╕реЗ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдмрд╕реЗрдЯ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░ рджрд┐рдЦреЗрдЧрд╛ред

All Articles