Найти Π² Π”Π·Π΅Π½Π΅
2020 подписчиков

🦫БозданиС оркСстратора для событийно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния с Golang ΠΈ RabbitMQ


ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
НомСра Π² гостиницС Π±Ρ€ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ доступности.

β€’ Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ запроса Π½Π° Π±Ρ€ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ сСрвисам: рСзСрвирования, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, зачислСния срСдств, бронирования.

БСрвисам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π° Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° β€” ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Β«Π·Π½Π°ΡŽΡ‚Β», ΠΎΡ‚ΠΊΡƒΠ΄Π° запрос: Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвиса Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π·Π°Π΄Π°Ρ‡Π°, ΠΈ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ с Π½Π΅ΠΉ справляСтся. Π­Ρ‚ΠΎ называСтся сниТСниСм связанности. НС Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ запроса ΠΈ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ всС прСимущСства Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ микросСрвисов.

Π‘Π½Π°Ρ‡Π°Π»Π° создадим Π±Π»ΠΎΠΊ-схСму: ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, всСго Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ этапа:
1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°: Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях гостиницами ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ всС ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ доступ ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ рСзСрвируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹. Π­Ρ‚ΠΎ слоТныС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΎΡ‚Π΄Π΅Π»ΠΈΠΌ ΠΈΡ… ΠΎΡ‚ Π²Π΅Π±-API.
2. Π Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π±Ρ€ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° нСсколькими людьми прСдотвращаСтся глобальной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Redis.
3. БписаниС: Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π² Π½ΠΎΠΌΠ΅Ρ€, списываСм срСдства.
4. Π‘Ρ€ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ² процСсс списания, удаляСм Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π±Ρ€ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€.

Но Π² любом сСрвисС ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ошибки.

ΠžΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡ β€” ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠΏΠΎΡ€ΡŒΠ΅ для создания ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° запросов, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок ΠΈ соотвСтствСнных дСйствий.

ДСйствия Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…:
β€’ НСдостаточно срСдств: удаляСм Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
β€’ Ошибка ΠΏΡ€ΠΈ Π±Ρ€ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ срСдства ΠΈ удаляСм Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Настройка RabbitMQ
НС Π·Π½Π°ΠΊΠΎΠΌΡ‹ с RabbitMQ? ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, хотя основы ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ.

RabbitMQ, ΠΊΠ°ΠΊ ΠΈ Apache Kafka, β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с отправитСлями ΠΈ получатСлями сообщСний. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ-Ρ‡Π°Ρ‚Π΅ отправитСлями сообщСниС отправляСтся, получатСлями β€” получаСтся.

Как ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ ΠΊ ΠΌΠΎΠ΅ΠΌΡƒ Π΄Ρ€ΡƒΠ³Ρƒ, Π° Π½Π΅ случайному Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅? Π­Ρ‚ΠΎ слоТная Ρ‡Π°ΡΡ‚ΡŒ.


🦫БозданиС оркСстратора для событийно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния с Golang ΠΈ RabbitMQ  ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ НомСра Π² гостиницС Π±Ρ€ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ доступности.
1 ΠΌΠΈΠ½ΡƒΡ‚Π°