ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΏΠ»Π°Π΄Π½Π΅, Π₯Π°Π±Ρ! Π‘Π°ΠΊΠ°ΠΌ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Π°ΠΌ ΡΡΠ΅Π±Π½ΠΈΠΊ-ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π° ΠΊΠ½ΠΈΠ³Π° Π½Π° Π·Π½Π°Π΅ΡΠ° ΡΡΠΎ ΡΡΠΏΠ΅Π°Π² Π΄Π° Π³ΠΈ ΡΠΎΠ±Π΅ΡΠ°ΠΌ RabbitMQ
ΠΈ ΡΠ΅ ΠΊΠΎΠ½Π΄Π΅Π½Π·ΠΈΡΠ° Π²ΠΎ ΠΊΡΠ°ΡΠΊΠΈ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΠΊΠΈ ΠΈ Π·Π°ΠΊΠ»ΡΡΠΎΡΠΈ.
Π‘ΠΎΠ΄ΡΠΆΠΈΠ½Π°
- RabbitMQ. ΠΠ΅Π» 1. ΠΠΎΠ²Π΅Π΄. Erlang, AMQP ΠΈ RPC
- RabbitMQ. ΠΠ΅Π» 2. Π Π°Π·Π±ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π·ΠΌΠ΅Π½Π°
- RabbitMQ. ΠΠ΅Π» 3. Π Π°Π·Π±ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ΅Π΄ΠΈΡΠΈ ΠΈ Π²ΡΡΠΊΠΈ
- RabbitMQ. ΠΠ΅Π» 4. Π Π°Π·Π±ΠΈΡΠ°ΡΠ΅ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ°ΠΊΠΈ ΠΈ ΡΠ°ΠΌΠΊΠΈ
- RabbitMQ. ΠΠ΅Π» 5: ΠΠ·Π²Π΅Π΄Π±Π° Π½Π° ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΈ ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ° Π½Π° ΠΏΠΎΡΠ°ΠΊΠΈ
- RabbitMQ. ΠΠ΅Π» 6. ΠΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ Π»ΠΎΠΏΠ°ΡΠ°
- RabbitMQ. ΠΠ΅Π» 7. ΠΠ΅ΡΠ°Π»ΠΈ Π·Π° Connection ΠΈ Chanel
- RabbitMQ. ΠΠ΅Π» 8. RabbitMQ Π²ΠΎ .NET
- RabbitMQ. ΠΠ΅Π» 9. ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ Π·Π° AMQP
AMQP (Advanced Message Quueing Protocol) Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° ΠΏΡΠ΅Π½ΠΎΡ Π½Π° ΠΏΠΎΡΠ°ΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠ΄Π΅ΡΠ° Π΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΈ (ΠΈΠ»ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ) ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ°Π·ΠΌΠ΅Π½ΡΠ²Π°Π°Ρ ΠΏΠΎΡΠ°ΠΊΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π½Π°ΡΠΈΠ½ ΠΏΡΠ΅ΠΊΡ AMQP Π±ΡΠΎΠΊΠ΅Ρ, ΠΊΠΎΡ Π²ΡΡΠΈ ΡΡΡΠΈΡΠ°ΡΠ΅, Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ°, Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΡΠ΅ΠΊΠΎΠ²ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΡΠ΅ ΠΏΡΠ΅ΡΠΏΠ»Π°ΡΠΈ Π½Π° ΡΠ°ΠΊΠ°Π½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²ΠΈ ΠΏΠΎΡΠ°ΠΊΠΈ.
ΠΡΠΎΡΠΎΠΊΠΎΠ» AMQP
Π²ΠΎΠ²Π΅Π΄ΡΠ²Π° ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈ:
exchange
(ΡΠ°Π·ΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Π½Π°) - ΠΏΠΎΡΠ°ΠΊΠΈ ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ°Π°Ρ Π΄ΠΎ Π½Π΅Π³ΠΎ. Π’ΠΎΡΠΊΠ° Π·Π° ΡΠ°Π·ΠΌΠ΅Π½Π° ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° Π²ΠΎ Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ. Π’Π°Π° Π³ΠΈ Π½Π°ΡΠΎΡΡΠ²Π° ΠΏΠΎΡΠ°ΠΊΠΈΡΠ΅ Π²ΠΎ ΡΠ΅Π΄ΠΈΡΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΈ Π²ΡΡΠΊΠΈ (binding
) ΠΏΠΎΠΌΠ΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ ΡΠ΅Π΄ΠΎΡqueue
(ΡΠ΅Π΄ΠΈΡΠ°) - ΡΡΡΡΠΊΡΡΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π° Π΄ΠΈΡΠΊΠΎΡ ΠΈΠ»ΠΈ Π²ΠΎ RAM ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΡΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ° Π»ΠΈΠ½ΠΊΠΎΠ²ΠΈ Π΄ΠΎ ΠΏΠΎΡΠ°ΠΊΠΈ ΠΈ Π΄Π°Π²Π° ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ΄ ΠΏΠΎΡΠ°ΠΊΠΈΡΠ΅consumers
(Π½Π° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΈΡΠ΅)binding
(ΠΎΠ±Π²ΡΠ·ΡΠ²Π°ΡΠΊΠΈ) - ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΡΠΎ Ρ ΠΊΠ°ΠΆΡΠ²Π° Π½Π° ΡΠΎΡΠΊΠ°ΡΠ° Π·Π° ΡΠ°Π·ΠΌΠ΅Π½Π° Π²ΠΎ ΠΊΠΎΡΠ° ΡΠ΅Π΄ΠΈΡΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΎΠ΄Π°Ρ ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΡΠ°ΠΊΠΈ
ΠΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π²ΡΠ²ΠΎΡ
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ Π·Π° ΠΡΠ»Π°Π½Π³
ΠΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π΅ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π½Π°
Erlang
ΡΠ°Π·Π²ΠΈΠ΅Π½Π° ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ°Ericsson
Π²ΠΎ ΡΡΠ΅Π΄ΠΈΠ½Π°ΡΠ° Π½Π° 1980-ΡΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½, ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ΅Π½ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠΈΡΡΠ΅ΠΌ Π²ΠΎ ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠΈ Π±Π°ΡΠ°Π°Ρ 99,999% uptime.Erlang
ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ ΠΈ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, Π½Π° ΠΏΡ.ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° WhatsApp, ΠΊΠΎΡΠ° Facebook ΡΠ° ΠΊΡΠΏΠΈ Π·Π° 19 ΠΌΠΈΠ»ΠΈΡΠ°ΡΠ΄ΠΈ Π΄ΠΎΠ»Π°ΡΠΈ
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ Π·Π° RabbitMQ
RabbitMQ
Π³ΠΎ ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π° ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ AMQP
.
ΠΠ»Π°Π²Π½Π°ΡΠ° ΠΈΠ΄Π΅ΡΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ Π·Π° ΠΏΠΎΡΠ°ΠΊΠΈ Π²ΠΎ RabbitMQ
ΡΠ°Π±ΠΎΡΠ° Π΅ producer
(ΠΈΠ·Π΄Π°Π²Π°Ρ) Π½Π΅ ΠΈΡΠΏΡΠ°ΡΠ° ΠΏΠΎΡΠ°ΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄ΠΎ ΡΠ΅Π΄ΠΎΡ. ΠΡΡΡΠ½ΠΎΡΡ, ΠΈ Π΄ΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ, ΠΈΠ·Π΄Π°Π²Π°ΡΠΎΡ Π΄ΡΡΠΈ ΠΈ Π½Π΅ Π·Π½Π°Π΅ Π΄Π°Π»ΠΈ ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° Π²ΠΎΠΎΠΏΡΡΠΎ ΡΠ΅ Π±ΠΈΠ΄Π΅ Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π΄ΠΎ ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ ΡΠ΅Π΄ΠΈΡΠ°.
ΠΠ°ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ°, ΠΈΠ·Π΄Π°Π²Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΡΠΏΡΠ°ΡΠ° ΠΏΠΎΡΠ°ΠΊΠΈ ΡΠ°ΠΌΠΎ Π΄ΠΎ ΡΠ΅Π½ΡΡΠ°Π»Π°ΡΠ°. ΠΠ΄ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, ΡΠ΅Π½ΡΡΠ°Π»Π°ΡΠ° Π΄ΠΎΠ±ΠΈΠ²Π° ΠΏΠΎΡΠ°ΠΊΠΈ ΠΎΠ΄ ΠΈΠ·Π΄Π°Π²Π°ΡΠΈΡΠ΅, Π° ΠΎΠ΄ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π° Π³ΠΈ ΠΈΡΠΏΡΠ°ΡΠ° Π²ΠΎ ΡΠ΅Π΄ΠΈΡΠΈ. Π Π°Π·ΠΌΠ΅Π½Π°ΡΠ° ΠΌΠΎΡΠ° ΡΠΎΡΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ ΡΡΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈ ΡΠΎ ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΏΡΠΈΠΌΠ°. ΠΠ°Π»ΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΡΠ΅Π΄ΠΈΡΠ°? ΠΠ°Π»ΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ? ΠΠ»ΠΈ ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°.
ΠΡΠ°ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠ° RabbitMQ
ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΠΎΠ² Π½Π°ΡΠΈΠ½:
- ΠΠ·Π΄Π°Π²Π°ΡΠΎΡ ΠΈΡΠΏΡΠ°ΡΠ° ΠΏΠΎΡΠ°ΠΊΠ° Π΄ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΡΠ°Π·ΠΌΠ΅Π½Π°
- Π Π°Π·ΠΌΠ΅Π½Π°ΡΠ°, ΠΎΡΠΊΠ°ΠΊΠΎ Π΄ΠΎΠ±ΠΈΠ»Π° ΠΏΠΎΡΠ°ΠΊΠ°, ΡΠ° Π½Π°ΡΠΎΡΡΠ²Π° ΠΊΠΎΠ½ Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅Π΄ΠΈΡΠΈ Π²ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎΡΡ ΡΠΎ ΠΎΠ±Π²ΡΠ·ΡΠ²Π°ΡΠΊΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎΠΌΠ΅ΡΡ Π½Π΅Π° ΠΈ ΡΠ΅Π΄ΠΎΡ
- Π Π΅Π΄ΠΎΡ ΡΠΊΠ»Π°Π΄ΠΈΡΠ° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ° Π·Π° ΠΎΠ²Π°Π° ΠΏΠΎΡΠ°ΠΊΠ°. Π‘Π°ΠΌΠ°ΡΠ° ΠΏΠΎΡΠ°ΠΊΠ° Π΅ Π·Π°ΡΡΠ²Π°Π½Π° Π²ΠΎ RAM ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈΠ»ΠΈ Π½Π° Π΄ΠΈΡΠΊ
- ΠΡΠΊΠ°ΠΊΠΎ ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΎΡ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π΄Π° ΠΏΡΠΈΠΌΠΈ ΠΏΠΎΡΠ°ΠΊΠ° ΠΎΠ΄ ΡΠ΅Π΄ΠΎΡ, ΡΠ΅ΡΠ²Π΅ΡΠΎΡ ΡΠΎΠ·Π΄Π°Π²Π° ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΠΏΡΠ΅ΠΊΡ Π²ΡΡΠΊΠ°ΡΠ° ΠΈ ΠΈΡΠΏΡΠ°ΡΠ°
- ΠΠΎΡΡΠΎΡΡΠ²Π°ΡΠΎΡ ΡΠ° ΠΏΡΠΈΠΌΠ° ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΠΈ ΠΈΡΠΏΡΠ°ΡΠ° ΠΏΠΎΡΠ²ΡΠ΄Π° Π΄ΠΎ Π±ΡΠΎΠΊΠ΅ΡΠΎΡ
- ΠΡΠΎΠΊΠ΅ΡΠΎΡ, ΠΏΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°ΡΠ΅ΡΠΎ ΠΏΠΎΡΠ²ΡΠ΄Π°, ΠΎΡΡΡΡΠ°Π½ΡΠ²Π° ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΠΎΠ΄ ΡΠ΅Π΄ΠΎΡ. ΠΠΎΡΠΎΠ° ΡΠ΅ Π±ΡΠΈΡΠ΅ ΠΎΠ΄ RAM ΠΈ Π΄ΠΈΡΠΊ
Rpc
ΠΏΡΠΎΡΠ΅Ρ RabbitMQ
. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ²ΠΈΡΠ½ΠΈΡΠ΅ Π΄ΠΈΡΠΊΡΡΠΈΠΈ Π·Π° ΡΡΠ»ΠΎΠ²ΠΈΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΡΠΎ RabbitMQ
, ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ RPC
. ΠΡΠΊΠ°ΠΊΠΎ ΠΎΠ²Π°Π° Π½ΠΈΠ·Π° Π΅ Π·Π°Π²ΡΡΠ΅Π½Π°, RabbitMQ
ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π΄Π° ΠΏΡΠΈΡΠ°ΡΠΈ Π±Π°ΡΠ°ΡΠ° ΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ:
ΠΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° AMQP
ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΈΠ·Π΄Π°Π²Π°Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΡΠ΅ΠΊΠ° Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ° ΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ. ΠΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΡΠ΅ ΠΊΠ»Π°ΡΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Connection.Start
β ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ²ΠΈΠΊ Start
ΠΊΠ»Π°ΡΠ° Connection
.
ΠΡΡΠΊΠ° ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ
ΠΠ° ΡΠ°ΠΊΠ²Π° ΡΠ°Π·ΠΌΠ΅Π½Π° Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ, ΠΊΠ°Π½Π°Π»ΠΈ. ΠΠ°Π½Π°Π»ΠΈΡΠ΅ ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ Π²Π½Π°ΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° Π²ΡΡΠΊΠ°. Π‘Π΅ΠΊΠΎΡ ΠΊΠ°Π½Π°Π» Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΎΠ΄ Π΄ΡΡΠ³ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ. ΠΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ, Π½Π΅ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½Π΅ ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ.
ΠΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π΄Π° ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΡΡΠ΅Π±Π° Π΄Π° ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΊΠ°Π½Π°Π»ΠΈ. Π‘Π΅ΠΊΠΎΡ ΠΊΠ°Π½Π°Π» ΡΠΎΠ·Π΄Π°Π²Π° ΠΏΠΎΡΠ΅Π±Π΅Π½ Erlang
ΠΏΡΠΎΡΠ΅Ρ. ΠΠ΄Π½Π° Π²ΡΡΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠ°Π½Π°Π»ΠΈ (
ΠΠ΄Π½ΠΎΡΡΠ°Π²Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π²ΡΡΠΊΠ° ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ°Π½Π°Π»
// ...
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
ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΡΠ°Π·ΠΌΠ΅Π½Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΈ (ΡΠ΅ΡΠ²Π΅Ρ-ΡΠ΅ΡΠ²Π΅Ρ). ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π³ΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ
ΠΠΎ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΡΠ°ΡΠΈΡΠ° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π΅ΡΠ°Π»Π½ΠΎ Π΄Π° Π³ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ Π Π°Π·ΠΌΠ΅Π½ΠΈΡΠ΅.
ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈ
ΠΠ·Π²ΠΎΡ: www.habr.com