ПониманиС Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠ² сообщСний. Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями посрСдством ActiveMQ ΠΈ Kafka. Π“Π»Π°Π²Π° 1

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚!

Начал ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ нСбольшой ΠΊΠ½ΠΈΠ³ΠΈ:
«Understanding Message Brokers«,
Π°Π²Ρ‚ΠΎΡ€: Jakub Korab, ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ: O’Reilly Media, Inc., Π΄Π°Ρ‚Π° издания: June 2017, ISBN: 9781492049296.

Из ввСдСния к книгС:
«β€¦ Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° Π½Π°ΡƒΡ‡ΠΈΡ‚ вас Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ систСмах ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°Ρ…, сравнивая ΠΈ противопоставляя Π΄Π²Π΅ популярныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠ²: Apache ActiveMQ ΠΈ Apache Kafka. Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ΠΈ стимулы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ использовали ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ области β€” ΠΎΠ±ΠΌΠ΅Π½Ρƒ сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами с ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ. ΠœΡ‹ рассмотрим эти Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ с нуля ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ влияниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° этом ΠΏΡƒΡ‚ΠΈ. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡ… слСдуСт ΠΈ Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ слСдуСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ рассмотрСнии Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ …»

ΠŸΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΊ настоящСму ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ части:
Π“Π»Π°Π²Π° 1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
Π“Π»Π°Π²Π° 3. Kafka

Π‘ΡƒΠ΄Ρƒ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹Π΅ Π³Π»Π°Π²Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°.

ГЛАВА 1

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠœΠ΅ΠΆΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ сообщСниями β€” это ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… областСй ИВ. Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Ρ€Π΅ΠΉΠΌΡ„ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Однако, Π²ΠΏΠΎΠ»Π½Π΅ вСроятно, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΈΠΌΠΎΠ»Π΅Ρ‚Π½ΠΎΠ΅ знакомство с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, основанныС Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅. Если Π²Ρ‹ Ρ‚Π°ΠΊ сСбя ΠΈ чувствуСтС, Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ, Π²Ρ‹ Π² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Π›ΡŽΠ΄ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ с инфраструктурой ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ. НСрСдко ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ систСмС, созданной Π΄Π°Π²Π½Ρ‹ΠΌ-Π΄Π°Π²Π½ΠΎ, ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ дистрибутив ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π΅Π³ΠΎ Π² ПРОМ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄. ПослС запуска инфраструктуры Π² ПРОМ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌΠΈ: потСря сообщСний ΠΏΡ€ΠΈ сбоях, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, ΠΈΠ»ΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹ Β«ΠΏΠΎΠ΄Π²Π΅ΡˆΠΈΠ²Π°ΡŽΡ‚Β» Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡŒΡŽΡΠ΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ сообщСния вашим потрСбитСлям.

Π—Π²ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°ΠΊΠΎΠΌΠΎ?

РаспространСнный сцСнарий, ΠΊΠΎΠ³Π΄Π° ваш ΠΊΠΎΠ΄ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π΄ΠΎ ΠΏΠΎΡ€Ρ‹ Π΄ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Пока Π½Π΅ пСрСстаСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ усыпляСт Π±Π΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π΄Π°Π΅Ρ‚ Π»ΠΎΠΆΠ½ΠΎΠ΅ чувство бСзопасности, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅Ρ‰Π΅ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ, основанному Π½Π° Π»ΠΎΠΆΠ½Ρ‹Ρ… прСдставлСниях ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Когда Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ Π½Π΅ Ρ‚Π°ΠΊ, Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ истиной: Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ поняли Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈΠ»ΠΈ компромиссы, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΈΠ² надСТности, ΠΈΠ»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ.

Π‘Π΅Π· Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹, люди Π΄Π΅Π»Π°ΡŽΡ‚, казалось Π±Ρ‹, Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ утвСрТдСния ΠΎΠ± ΠΈΡ… систСмах ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:

  • БистСма Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ потСряСт сообщСния
  • БообщСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡŒΡŽΠΌΠ΅Ρ€ΠΎΠ² сдСлаСт систСму быстрСС
  • БообщСния Π±ΡƒΠ΄ΡƒΡ‚ доставлСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·

К соТалСнию, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ основаны Π½Π° прСдполоТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ…, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, просто Π½Π΅Π²Π΅Ρ€Π½Ρ‹.

Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° Π½Π°ΡƒΡ‡ΠΈΡ‚ вас Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ систСмах ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, основанных Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°Ρ…, сравнивая ΠΈ противопоставляя Π΄Π²Π΅ популярныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠ²: Apache ActiveMQ ΠΈ Apache Kafka. Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ΠΈ стимулы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ использовали ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ области β€” ΠΎΠ±ΠΌΠ΅Π½Ρƒ сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами с ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ. ΠœΡ‹ рассмотрим эти Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ с нуля ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ влияниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π½Π° этом ΠΏΡƒΡ‚ΠΈ. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡ… слСдуСт ΠΈ Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° Ρ‡Ρ‚ΠΎ слСдуСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ рассмотрСнии Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ пройдСмся ΠΏΠΎ основам.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ БистСма ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄Π²Π° прилоТСния ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сначала ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ интСрфСйс. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этого интСрфСйса Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ транспорта ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ HTTP, MQTT ΠΈΠ»ΠΈ SMTP ΠΈ согласованиС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ систСмы. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строгий процСсс, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ схСмы XML с трСбованиями ΠΊ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ Π½Π° ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ (payload) сообщСния, ΠΈΠ»ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, соглашСниС ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ нСкоторая Ρ‡Π°ΡΡ‚ΡŒ HTTP-запроса Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Пока Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сообщСний ΠΈ порядок ΠΈΡ… ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами согласованы, ΠΎΠ½ΠΈ смогут Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Π½Π΅ Π·Π°Π±ΠΎΡ‚ΡΡΡŒ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмы. ВнутрСнности этих систСм, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ язык программирования ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΡ„ΠΎΡ€ΠΊ, ΠΌΠΎΠ³ΡƒΡ‚ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Π”ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° поддСрТиваСтся сам ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚, взаимодСйствиС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны. Π­Ρ‚ΠΈ Π΄Π²Π΅ систСмы эффСктивно расцСплСны (Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹) этим интСрфСйсом.

БистСмы ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ участиС посрСдника ΠΌΠ΅ΠΆΠ΄Ρƒ двумя систСмами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ для дальнСйшСго расцСплСния (раздСлСния) отправитСля ΠΎΡ‚ получатСля ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠŸΡ€ΠΈ этом систСма ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŽ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС, Π½Π΅ зная, Π³Π΄Π΅ находится ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ, Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Π»ΠΈ ΠΎΠ½ ΠΈΠ»ΠΈ сколько ΠΈΡ… экзСмпляров.

Рассмотрим ΠΏΠ°Ρ€Ρƒ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΉ разновидностСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ систСма ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, ΠΈ Π²Π²Π΅Π΄Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹.

Point-to-Point

АлСксандра ΠΈΠ΄Π΅Ρ‚ Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Адаму посылку. Она ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠΊΠΎΡˆΠΊΡƒ ΠΈ Π²Ρ€ΡƒΡ‡Π°Π΅Ρ‚ сотруднику посылку. Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ посылку ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ АлСксандрС ΠΊΠ²ΠΈΡ‚Π°Π½Ρ†ΠΈΡŽ. Адаму Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΌΠ° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ посылки. АлСксандра ΡƒΠ²Π΅Ρ€Π΅Π½Π°, Ρ‡Ρ‚ΠΎ посылка Π±ΡƒΠ΄Π΅Ρ‚ доставлСна Адаму Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ своими Π΄Π΅Π»Π°ΠΌΠΈ. ПозТС Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Адам ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ посылку.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Ρ‚ΠΎΡ‡ΠΊΠ°-Ρ‚ΠΎΡ‡ΠΊΠ°. ΠŸΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ΅ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠ΅ здСсь дСйствуСт ΠΊΠ°ΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ распрСдСлСния посылок, гарантируя, Ρ‡Ρ‚ΠΎ каТдая посылка Π±ΡƒΠ΄Π΅Ρ‚ доставлСна ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. ИспользованиС ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ отдСлСния отдСляСт Π°ΠΊΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ посылки ΠΎΡ‚ доставки посылки.
Π’ классичСских систСмах ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями модСль Β«Ρ‚ΠΎΡ‡ΠΊΠ°-Ρ‚ΠΎΡ‡ΠΊΠ°Β» рСализуСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ дСйствуСт, ΠΊΠ°ΠΊ Π±ΡƒΡ„Π΅Ρ€ FIFO (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ вошСл, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅Π»), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ. КаТдоС сообщСниС доставляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· подписанных ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ. ΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ справСдливо Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ потрСбитСлями. Волько ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΄Π°Π½Π½ΠΎΠ΅ сообщСниС.

К очСрСдям примСняСтся Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅Β» (Β«durableΒ»). ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ β€” это свойство сСрвиса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ систСма ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ сообщСния ΠΏΡ€ΠΈ отсутствии Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… подписчиков Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для доставки сообщСний.

ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ часто ΠΏΡƒΡ‚Π°ΡŽΡ‚ с ΠΏΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ, хотя эти Π΄Π²Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° взаимозамСняСмы, ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ опрСдСляСт, записываСт Π»ΠΈ сообщСниС систСма ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π² ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ€ΠΎΠ΄Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π΅Π³ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŽ. БообщСния, отправляСмыС Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ пСрсистСнтными.
ОбмСн сообщСниями Ρ‚ΠΈΠΏΠ° Β«Π’ΠΎΡ‡ΠΊΠ°-Ρ‚ΠΎΡ‡ΠΊΠ°Β» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ дСйствия с сообщСниСм. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти внСсСниС срСдств Π½Π° счСт ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° Π½Π° доставку. ΠœΡ‹ обсудим ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ систСма ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями сама ΠΏΠΎ сСбС нСспособна ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΡƒΡŽ доставку ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡŽ доставки хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒ-ΠŸΠΎΠ΄ΠΏΠΈΡΡ‡ΠΈΠΊ

Габриэлла Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ. Пока ΠΎΠ½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΊ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ, ΠΎΠ½Π° ΡΠ»Ρ‹ΡˆΠΈΡ‚ всС, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ спикСр, вмСстС с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ участниками Π²Ρ‹Π·ΠΎΠ²Π°. Когда ΠΎΠ½Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, ΠΎΠ½Π° пропускаСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сказано. ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ½Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ говорят.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями публикация-подписка. ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†-связь выступаСт, ΠΊΠ°ΠΊ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ. Говорящий Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π½Π΅ заботится ΠΎ Ρ‚ΠΎΠΌ, сколько людСй Π² настоящСС врСмя ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΊ Π·Π²ΠΎΠ½ΠΊΡƒ β€” систСма Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ любой ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΡΠ»Ρ‹ΡˆΠΈΡ‚, Ρ‡Ρ‚ΠΎ говорится.
Π’ классичСских систСмах ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями модСль ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями «публикация-подписка» рСализуСтся Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΠΏΠΈΠΊΠΈ. Π’ΠΎΠΏΠΈΠΊ прСдоставляСт Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ способ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†-связи. Когда сообщСниС отправляСтся Π² Ρ‚ΠΎΠΏΠΈΠΊ, ΠΎΠ½ΠΎ распрСдСляСтся ΠΏΠΎ всСм подписанным ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.

Π’ΠΎΠΏΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ (nondurable). Как ΠΈ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΡΠ»Ρ‹ΡˆΠΈΡ‚, Ρ‡Ρ‚ΠΎ говорится Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†-Π·Π²ΠΎΠ½ΠΊΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, подписчики Ρ‚ΠΎΠΏΠΈΠΊΠ° ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π»ΡŽΠ±Ρ‹Π΅ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ находятся Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΏΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡŽ доставки Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ потрСбитСля.

ОбмСн сообщСниями Ρ‚ΠΈΠΏΠ° «публикация-подписка» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° сообщСния носят ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€, ΠΈ потСря ΠΎΠ΄Π½ΠΎΠ³ΠΎ сообщСния β€” Π½Π΅ особо Π·Π½Π°Ρ‡ΠΈΠΌΠ°. НапримСр, Ρ‚ΠΎΠΏΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ показания Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² сСкунду. БистСма, которая интСрСсуСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΈ которая подписываСтся Π½Π° Ρ‚ΠΎΠΏΠΈΠΊ, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ссли ΠΎΠ½Π° пропустит сообщСниС β€” Π΄Ρ€ΡƒΠ³ΠΎΠ΅ поступит Π² блиТайшСС врСмя.

Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ

Π’Π΅Π±-сайт ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ сообщСния ΠΎ Π·Π°ΠΊΠ°Π·Π°Ρ… Π² Β«ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний». ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΌ этих сообщСний являСтся ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, систСма Π°ΡƒΠ΄ΠΈΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΠΈ этих сообщСний ΠΎ Π·Π°ΠΊΠ°Π·Π°Ρ… для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ отслСТивания. ОбС систСмы Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сообщСния, Π΄Π°ΠΆΠ΅ Ссли сами систСмы Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ нСдоступны. Π’Π΅Π±-сайт Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ использования часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ совмСщСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями «публикация-подписка» ΠΈ Β«Ρ‚ΠΎΡ‡ΠΊΠ°-Ρ‚ΠΎΡ‡ΠΊΠ°Β», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° нСскольким систСмам трСбуСтся копия сообщСния, ΠΈ для прСдотвращСния ΠΏΠΎΡ‚Π΅Ρ€ΠΈ сообщСния трСбуСтся ΠΊΠ°ΠΊ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ.

Π’ этих случаях трСбуСтся адрСсат (destination) (ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ для ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ ΠΈ Ρ‚ΠΎΠΏΠΈΠΊΠΎΠ²), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ распрСдСляСт сообщСния Π² основном ΠΊΠ°ΠΊ Ρ‚ΠΎΠΏΠΈΠΊ, Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сообщСниС отправляСтся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ систСму, Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Π½Π½ΡƒΡŽ Π² этих сообщСниях, Π½ΠΎ ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ каТдая систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ входящиС сообщСния, Ρ‡Ρ‚ΠΎ большС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Π’ΠΈΠΏ чтСния Π² этом случаС β€” ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ заинтСрСсованной стороны. Π­Ρ‚ΠΈ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ адрСсаты часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ надСТности (durability), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² это врСмя, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ послС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ потрСбитСля.

Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ Π½ΠΎΠ²Ρ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°ΠΊ ActiveMQ (Ρ‡Π΅Ρ€Π΅Π· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ составныС адрСсаты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ Ρ‚ΠΎΠΏΠΈΠΊΠΈ ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ), Ρ‚Π°ΠΊ ΠΈ Kafka (нСявно, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ свойство Π΄ΠΈΠ·Π°ΠΉΠ½Π° Π΅Ρ‘ адрСсата).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ нСкоторая базовая тСрминология ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, для Ρ‡Π΅Π³ΠΎ Π½Π°ΠΌ ΠΌΠΎΠ³Π»Π° Π±Ρ‹ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ систСма ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ дСталям.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½: tele.gg/middle_java

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ пСрСвСдСнная Ρ‡Π°ΡΡ‚ΡŒ: Π“Π»Π°Π²Π° 3. Kafka

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ слСдуСт…

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com