ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ, Π₯Π°Π±Ρ! Π₯ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠΌ-ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π·Π½Π°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎ RabbitMQ
ΠΈ ΡΠΆΠ°ΡΡ Π² ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄Ρ.
ΠΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅
- RabbitMQ. Π§Π°ΡΡΡ 1. Introduction. Erlang, AMQP ΠΈ RPC
- RabbitMQ. Π§Π°ΡΡΡ 2. Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Ρ Exchanges
- RabbitMQ. Π§Π°ΡΡΡ 3. Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Ρ Queues ΠΈ Bindings
- RabbitMQ. Π§Π°ΡΡΡ 4. Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ-ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅ΠΉΠΌΡ
- RabbitMQ. Π§Π°ΡΡΡ 5. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
- RabbitMQ. Π§Π°ΡΡΡ 6. ΠΠ±Π·ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Federation ΠΈ Shovel
- RabbitMQ. Π§Π°ΡΡΡ 7. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΡΠΎ Connection ΠΈ Chanel
- RabbitMQ. Π§Π°ΡΡΡ 8. RabbitMQ Π² .NET
- RabbitMQ. Π§Π°ΡΡΡ 9. ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΡΠ°ΡΠΊΠΎ ΠΏΡΠΎ AMQP
AMQP (Advanced Message Queuing Protocol) β ΠΎΡΠΊΡΡΡΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ (ΠΈΠ»ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· AMQP-Π±ΡΠΎΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΡ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ Π½Π° Π½ΡΠΆΠ½ΡΠ΅ ΡΠΈΠΏΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΎΡΠΎΠΊΠΎΠ» AMQP
Π²Π²ΠΎΠ΄ΠΈΡ ΡΡΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ:
exchange
(ΡΠΎΡΠΊΠ° ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ ΠΎΠ±ΠΌΠ΅Π½) β Π² Π½Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π’ΠΎΡΠΊΠ° ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ. ΠΠ½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ²ΡΠ·Π΅ΠΉ (binding
) ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌ ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΡΡqueue
(ΠΎΡΠ΅ΡΠ΅Π΄Ρ) β ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈΠ»ΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉconsumers
(ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΌ)binding
(ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°) β ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΠΎΡΠΊΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° Π² ΠΊΠ°ΠΊΡΡ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ
ΠΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ²Π΅ΡΡ
ΠΡΠ°ΡΠΊΠΎ ΠΏΡΠΎ Erlang
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π°
Erlang
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉEricsson
Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ 1980-x ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ, ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²Π°Ρ, ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠ΅Π±ΡΡΡΠΈΡ Π±Π΅Π·ΠΎΡΠΊΠ°Π·Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ 99,999%.Erlang
ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΡΡΠ°ΡΠ»ΡΡ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° WhatsApp, ΠΊΠΎΡΠΎΡΡΡ Facebook ΠΊΡΠΏΠΈΠ» Π·Π° $19 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ²
ΠΡΠ°ΡΠΊΠΎ ΠΏΡΠΎ RabbitMQ
RabbitMQ
ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» AMQP
.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² RabbitMQ
Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ producer
(ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ) Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ±ΠΌΠ΅Π½. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ±ΠΌΠ΅Π½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΈΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ, Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ β ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΠ±ΠΌΠ΅Π½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ? ΠΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ ΠΎΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ? ΠΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡΠ°ΡΠΊΠΎ ΡΠ°Π±ΠΎΡΡ RabbitMQ
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- ΠΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΎΠ±ΠΌΠ΅Π½Ρ
- ΠΠ±ΠΌΠ΅Π½, ΠΏΠΎΠ»ΡΡΠΈΠ² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π² ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌ ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΡΡ
- ΠΡΠ΅ΡΠ΅Π΄Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π‘Π°ΠΌΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅
- ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π³ΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΡΠ΅ΡΠ²Π΅Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ
- ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π±ΡΠΎΠΊΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅
- ΠΡΠΎΠΊΠ΅Ρ, ΠΏΠΎΠ»ΡΡΠΈΠ² ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΠ°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Ρ Π΄ΠΈΡΠΊΠ°
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
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ (ΡΠ΅ΡΠ²Π΅Ρ-ΡΠ΅ΡΠ²Π΅Ρ). Π’Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Ρ Exchanges.
Π‘ΡΡΠ»ΠΊΠΈ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com