рд╕рдордп рдХреЗ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдврд╝рддреА рд╣реИ рдФрд░ рдПрдХ рдореМрдЬреВрджрд╛ рдореЛрдиреЛрд▓рд┐рде рдореЗрдВ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдард┐рди, рд▓рдВрдмрд╛ рдФрд░ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕рд╡рд░реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧред рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдирдП рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдХреНрдпрд╛ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред
рдпрд╣ рд▓реЗрдЦ Nodejs рдФрд░ RabbitMQ рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рд▓рд┐рдЦреЗрдЧрд╛, рдФрд░ рдПрдХ рдореЛрдиреЛрд▓рд┐рде рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рднреА рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ?
- рдЧреЗрдЯрд╡реЗред рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдЬреЛ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрд╡рд░реНрдХ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд╣реАрдВ, рдЧреЗрдЯрд╡реЗ рдореЗрдВ рдХреЛрдИ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИред
- Microserviceред рд╕реНрд╡рдпрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд░, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдкрд░рд┐рд╡рд╣рдиред рдпрд╣ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреЗрдЯрд╡реЗ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВрдЧреЗред рдкрд░рд┐рд╡рд╣рди HTTP, gRPC, RabbitMQ, рдЖрджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпреЛрдВ RabbitMQ?
рдмреЗрд╢рдХ, рдЖрдк RabbitMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рд╕рдмрд╕реЗ рд╕рд░рд▓ HTTP рд╣реИ, Google рд╕реЗ gRPC рд╣реИред
рдореИрдВ RabbitMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрдлрд╝рд┐рд╕ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реВрдВ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрд╕ рдореЗрдВ рдХрд┐ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрддрд╛рд░ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╕реЗ рд╕рдВрджреЗрд╢ рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрд╡рд░реНрдХ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛ (рднрд▓реЗ рд╣реА рд╡рд╣ рдЗрд╕ рд╕рдордп рдмрдВрдж рд╣реЛ рдФрд░ рдлрд┐рд░ рдЪрд╛рд▓реВ рд╣реЛ )ред рдЗрди рдлрд╛рдпрджреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╣рдЬ рддреИрдирд╛рддреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢реБрд░реБрдЖрдд
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЧреЗрдЯрд╡реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдирддреЗ рд╣реБрдП HTTP рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
рд╣рдо RabbitMQ рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдФрд░ рдЧреЗрдЯрд╡реЗ рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВрдЧреЗ):
$ docker run -d -p 5672:5672 rabbitmq
рд╣рдо рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ micromq NPM рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
$ npm init -y $ npm i micromq -S
рдЧреЗрдЯрд╡реЗ рд▓рд┐рдЦрдирд╛
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛:
- рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдирдирд╛ рдФрд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ https://mysite.com/friends рдкрд░ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ
- рдЧреЗрдЯрд╡реЗ, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рддрд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЕрдиреБрд░реЛрдз рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:
3.1 рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░, рд╣реЗрдбрд░, рдХрдиреЗрдХреНрд╢рди рдЬрд╛рдирдХрд╛рд░реА, рдЖрджрд┐) RabbitMQ рдХрддрд╛рд░ рдореЗрдВ
3.2ред рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрд╕реНрдЯ рдЗрд╕ рдХрддрд╛рд░ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ, рдПрдХ рдирдпрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ
3.3ред Microservice рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрддрд╛ рд╣реИ
3.4ред рдЧреЗрдЯрд╡реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реБрдирддрд╛ рд╣реИ, рдПрдХ microservice рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
3.5ред рдЧреЗрдЯрд╡реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрддрд╛ рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА рд╣реИред
рд╣рдо рдПрдХ microservice рд▓рд┐рдЦрддреЗ рд╣реИрдВ
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛:
- рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЧреЗрдЯрд╡реЗ рд▓рд┐рдЦреЗрдЧрд╛ рдЕрдиреБрд░реЛрдз рдХрддрд╛рд░ рдХреЛ рд╕реБрдирдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
- рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рднреА рдЙрдкрд▓рдмреНрдз рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
- рдорд╛рдЗрдХреНрд░реЛрд╡реЗрд╕реНрдЯ рдЧреЗрдЯрд╡реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрддрд╛ рд╣реИ
3.1ред рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рд╣реЗрдбрд░, HTTP рдХреЛрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рдХрд╛рдп) RabbitMQ рдХрддрд╛рд░ рдореЗрдВ
3.2ред рдЧреЗрдЯрд╡реЗ рдЗрд╕ рдХрддрд╛рд░ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ, рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЙрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
3.3 рдЧреЗрдЯрд╡реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрддрд╛ рд╣реИ
рдорд╛рдЗрдХреНрд░реЛрд▓реЗрд╕реНрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдореЛрдиреЛрд▓рд┐рде рдорд╛рдЗрдЧреНрд░реЗрд╢рди
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
const express = require('express'); const app = express(); app.get('/balance', (req, res) => { res.json({ amount: 500, }); }); app.get('/friends', (req, res) => { res.json([ { id: 1, name: 'Mikhail Semin', }, { id: 2, name: 'Ivan Ivanov', }, ]); }); app.get('/status', (req, res) => { res.json({ text: 'Thinking...', }); }); app.listen(process.env.PORT);
рд╣рдо рдЗрд╕рдореЗрдВ рд╕реЗ 2 рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: / рдорд┐рддреНрд░ рдФрд░ / рд╕реНрдерд┐рддрд┐ред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
- рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдЦреАрдВрдЪреЛ
- рдЗрди рджреЛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХреЛ рдорд╛рдЗрдХреНрд░реЛ рд╕рд░реНрд╡рд┐рд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ
- Microservice рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬреЗрдВ
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЬрдм рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдорд╛рдЗрдХреНрд░реЛ-рд╕рд░реНрд╡рд┐рд╕ рдмрдирд╛рдпрд╛, рддреЛ рд╣рдордиреЗ рджреЛ рддрд░реАрдХреЗ / рдорд┐рддреНрд░ рдФрд░ / рд╕реНрдерд┐рддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рд╣рдорд╛рд░реЗ рдореЛрдиреЛрд▓рд┐рде рдХрд░рддрд╛ рд╣реИред
рдЧреЗрдЯрд╡реЗ рд╕реЗ microservice рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдорд┐рдбрд╡реЗрд╡реЗрдпрд░ рдХреЛ рд╣рдорд╛рд░реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдЙрд╕реА рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
const express = require('express');
рдпрд╣ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЬрд╣рд╛рдВ рд╣рдордиреЗ рдПрдХ рд╕рд╛рдл рдЧреЗрдЯрд╡реЗ рд▓рд┐рдЦрд╛ рдерд╛ред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреЗрд╡рд▓ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЧреЗрдЯрд╡реЗ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдореЛрдиреЛрд▓рд┐рде рдЬрд┐рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ
- рдПрдХ microservice рд╕реЗ рдПрдХ рдореЛрдиреЛрд▓рд┐рде / рдЧреЗрдЯрд╡реЗ рдХреЗ рд▓рд┐рдП RPC (рд░рд┐рдореЛрдЯ рдПрдХреНрд╢рди рдХреЙрд▓) (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП)
- рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП RabbitMQ рдХрддрд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реЛрддрд╛ рд╣реИ
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХрд╣рд╛ рдерд╛ "RabbitMQ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Node.js рдкрд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рд╕реАрдЦрдирд╛" ред