Найти Π² Π”Π·Π΅Π½Π΅
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста

πŸ“ŠπŸš€ ΠŸΠΎΡ‡Π΅ΠΌΡƒ всС говорят ΠΎ Kafka?

Π₯ΠΎΡ‡Π΅ΡˆΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ событий Π² сСкунду ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΈΠ΅ Π³ΠΈΠ³Π°Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ Netflix ΠΈ Uber, Π±Π΅Π· ΡƒΠΌΠ° ΠΎΡ‚ Kafka? Π”Π°Π²Π°ΠΉ разбСрСмся, ΠΊΠ°ΠΊ этот инструмСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π·ΠΎΠ»ΠΎΡ‚ΡƒΡŽ ΠΆΠΈΠ»Ρƒ для Ρ‚Π²ΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎΡ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» взят ΠΈΠ· нашСй СТСнСдСльной email-рассылки, посвящСнной бэкСнду. ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² числС ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ дайдТСст. πŸ“§ ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ (function () { let link = document .getElementById ("bf532542-9fad-48e5-bbaa-3cb84e2787a8-https://proglib.io/w/8631fef5-2"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) { let data = new FormData (); data .append ("url", href); apiFetch (action, { m
ОглавлСниС

Π₯ΠΎΡ‡Π΅ΡˆΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ событий Π² сСкунду ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΈΠ΅ Π³ΠΈΠ³Π°Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ Netflix ΠΈ Uber, Π±Π΅Π· ΡƒΠΌΠ° ΠΎΡ‚ Kafka? Π”Π°Π²Π°ΠΉ разбСрСмся, ΠΊΠ°ΠΊ этот инструмСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π·ΠΎΠ»ΠΎΡ‚ΡƒΡŽ ΠΆΠΈΠ»Ρƒ для Ρ‚Π²ΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» взят ΠΈΠ· нашСй СТСнСдСльной email-рассылки, посвящСнной бэкСнду. ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² числС ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ дайдТСст.

πŸ“§ ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ

(function () { let link = document .getElementById ("bf532542-9fad-48e5-bbaa-3cb84e2787a8-https://proglib.io/w/8631fef5-2"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) { let data = new FormData (); data .append ("url", href); apiFetch (action, { method: "POST", body: data }) .then (function (res) {}) .catch (function (err) { console .error (err); }); }) })();

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Apache Kafka?

Kafka – разносторонний инструмСнт: Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€ сообщСний, распрСдСлСнноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ событий ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Kafka разрабатывался ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ LinkedIn, Π½ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ стал ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ элСмСнтом Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° событийно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм – Π²ΠΎΡ‚ всСго нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠšΠ°Ρ„ΠΊΠΈ:

  • Π“ΠΈΠ³Π°Π½Ρ‚Ρ‹ уровня Netflix ΠΈ Uber ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
  • E-commerce ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ состояниС запасов.
  • ЀинансовыС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ транзакциях ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.
  • Π’Ρ€Π΅ΠΉΠ΄Π΅Ρ€Ρ‹ Π²Ρ‹ΡΠ²Π»ΡΡŽΡ‚ Ρ€Ρ‹Π½ΠΎΡ‡Π½Ρ‹Π΅ Ρ‚Ρ€Π΅Π½Π΄Ρ‹ ΠΈ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² Ρ‚ΠΎΡ€Π³Π°Ρ….
  • Π ΠΈΡ‚Π΅ΠΉΠ»Π΅Ρ€Ρ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… прСдпочтСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ пСрсонализированныС Π°ΠΊΡ†ΠΈΠΈ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Kafka стал Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ популярным? ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ – Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ: Kafka эффСктивно управляСт ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² самых ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… систСмах. Если Π²Π°ΠΌ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠšΠ°Ρ„ΠΊΡƒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅Π³ΠΎ возмоТности Π²Ρ‹Π²Π΅Π΄ΡƒΡ‚ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

БообщСния ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹

Π’ Kafka основной Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… являСтся сообщСниС. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с записью Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ фактичСски это просто Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ массив. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ сообщСния Π·Π°Π΄Π°ΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JSON, XML ΠΈΠ»ΠΈ систСмы сСриализации Apache Avro.

   Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° сообщСния Kafka
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° сообщСния Kafka

БообщСния Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ. ΠŸΠ°ΠΊΠ΅Ρ‚ – это Π½Π°Π±ΠΎΡ€ сообщСний, относящихся ΠΊ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅ ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ€Π°Π·Π΄Π΅Π»Ρƒ. ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ запись сниТаСт Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° систСму ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡ… Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ эффСктивными – мСньший объСм Π΄Π°Π½Π½Ρ‹Ρ… быстрСС пСрСдаСтся ΠΏΠΎ сСти ΠΈ экономит мСсто Π½Π° дискС. ИспользованиС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΈ пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ:

  • Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ большС сообщСний Π·Π° ΠΎΠ΄Π½ΠΎ дСйствиС, Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ систСмы – ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ большС Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° мСньшСС врСмя.
  • Однако это Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сообщСний. Пока ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ сообщСниС ΠΌΠΎΠΆΠ΅Ρ‚ дольшС ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ.

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

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

🌐 9 основных ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² для проСктирования распрСдСлСнных систСм

Π’Π΅ΠΌΡ‹ ΠΈ Ρ€Π°Π·Π΄Π΅Π»Ρ‹

Π’Π΅ΠΌΠ° Π² Kafka ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΡƒ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. ВсС сообщСния распрСдСлСны ΠΏΠΎ Ρ‚Π΅ΠΌΠ°ΠΌ. Π’Π΅ΠΌΡ‹ дСлятся Π½Π° Ρ€Π°Π·Π΄Π΅Π»Ρ‹. БообщСния Π² Ρ‚Π΅ΠΌΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΅Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², ΠΏΡ€ΠΈΡ‡Π΅ΠΌ всСгда Π² ΠΊΠΎΠ½Π΅Ρ†. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° сообщСния

   Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ€Π°Π·Π΄Π΅Π»Π°
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ€Π°Π·Π΄Π΅Π»Π°

Π Π°Π·Π΄Π΅Π»Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… сСрвСрах (Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°Ρ…). Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ: Ссли ΠΎΠ΄ΠΈΠ½ сСрвСр Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· строя, Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Kafka – это ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π² соотвСтствии с извСстным ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠΌ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ сообщСния Π² Π±Ρ€ΠΎΠΊΠ΅Ρ€ Kafka, указывая, Π² ΠΊΠ°ΠΊΡƒΡŽ Ρ‚Π΅ΠΌΡƒ ΠΈΡ… ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ:

   ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ издатСлями
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ издатСлями

ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ сообщСния ΠΈΠ· Ρ‚Π΅ΠΌ, работая Π² составС Π³Ρ€ΡƒΠΏΠΏ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ. КаТдая Π³Ρ€ΡƒΠΏΠΏΠ° слСдит Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·Π΄Π΅Π» обрабатывался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ участником Π³Ρ€ΡƒΠΏΠΏΡ‹. Если ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ участники Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠ΅Ρ€Π΅Π½ΠΈΠΌΠ°ΡŽΡ‚ Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ:

   ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΏΠΎ сути ΡΠ²Π»ΡΡŽΡ‚ΡΡ подписчиками
ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΏΠΎ сути ΡΠ²Π»ΡΡŽΡ‚ΡΡ подписчиками

Π‘Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹ ΠΈ кластСры

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвСр Kafka называСтся Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ. Π‘ΠΎ стороны ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ Π±Ρ€ΠΎΠΊΠ΅Ρ€ выполняСт Ρ‚Ρ€ΠΈ основныС Π·Π°Π΄Π°Ρ‡ΠΈ:

  • ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСния ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.
  • НазначаСт смСщСниС (порядковый Π½ΠΎΠΌΠ΅Ρ€, индСкс) для сообщСний.
  • БохраняСт сообщСния Π½Π° дискС.

Π‘ΠΎ стороны ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ Π±Ρ€ΠΎΠΊΠ΅Ρ€ выполняСт эти Π·Π°Π΄Π°Ρ‡ΠΈ:

  • ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ запросы Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².
  • ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ сообщСния Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° эти запросы.

Один Π±Ρ€ΠΎΠΊΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ тысячами Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ сообщСний Π² сСкунду. Π‘Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² кластСр. Π’ кластСрС ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠ² выполняСт Ρ€ΠΎΠ»ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, распрСдСляя Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΈ отслСТивая сбои.

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

πŸ§€πŸ Быстрый старт Π² распрСдСлСнныС вычислСния: 7 Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ

РСпликация

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство кластСра Kafka – Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ сообщСний. РСпликация обСспСчиваСт Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ хранящихся Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ сообщСний. Π’ Kafka ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» всСгда ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ Π² кластСрС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ этого Ρ€Π°Π·Π΄Π΅Π»Π°. Однако, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π΄Π΅Π» рСплицируСтся, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ назначаСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°ΠΌ. Π­Ρ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ послСдоватСлями (Ρ„ΠΎΠ»Π»ΠΎΠ²Π΅Ρ€Π°ΠΌΠΈ) Ρ€Π°Π·Π΄Π΅Π»Π°. Если Ρƒ Ρ€Π°Π·Π΄Π΅Π»Π° Π΅ΡΡ‚ΡŒ нСсколько ΠΊΠΎΠΏΠΈΠΉ, взаимодСйствиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ выглядит Ρ‚Π°ΠΊ:

  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ всСгда ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Π»ΠΈΠ΄Π΅Ρ€Ρƒ Ρ€Π°Π·Π΄Π΅Π»Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСния Π² этот Ρ€Π°Π·Π΄Π΅Π».
  • Если Π»ΠΈΠ΄Π΅Ρ€ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· послСдоватСлСй Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя Ρ€ΠΎΠ»ΡŒ Π»ΠΈΠ΄Π΅Ρ€Π° этого Ρ€Π°Π·Π΄Π΅Π»Π°. Π­Ρ‚ΠΎ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ сбоям.
  • ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния ΠΊΠ°ΠΊ ΠΎΡ‚ Π»ΠΈΠ΄Π΅Ρ€Π°, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· послСдоватСлСй. Π­Ρ‚ΠΎ позволяСт Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
   Π­Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° обСспСчиваСт баланс ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ, ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² кластСрС Kafka
Π­Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° обСспСчиваСт баланс ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ, ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² кластСрС Kafka

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Kafka

Kafka ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом прСимущСств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° мноТСства ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. Kafka ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими источниками Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ со мноТСством микросСрвисов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отслСТиваСт дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Kafka ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ просмотрах страниц Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ. Π­Ρ‚ΠΎ позволяСт Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источников ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° мноТСства ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ. Kafka позволяСт нСскольким потрСбитСлям ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΊ сообщСний, Π½Π΅ мСшая Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ, Π³Π΄Π΅ сообщСниС удаляСтся послС Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π² Kafka ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ сообщСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ процСссами. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, нСсколько ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹, ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ участником Π³Ρ€ΡƒΠΏΠΏΡ‹.
  • Π“ΠΈΠ±ΠΊΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° сохранСния Π½Π° дискС. Kafka Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° хранСния. Π­Ρ‚ΠΎ позволяСт потрСбитСлям Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΡΡ‚Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ€Π΅Π·ΠΊΠΎΠ³ΠΎ увСличСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· строя. БообщСния Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ, ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ смогут ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚ΠΎΠ³ΠΎ мСста, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ администрированиС ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π±Π΅Π· опасСний ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.
  • ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ. Kafka способСн ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…: Π½Π° этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°, Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ постСпСнно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ количСство Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятков ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ сотСн Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠ². Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π΅Π· остановки систСмы, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠšΠ°Ρ„ΠΊΡƒ особСнно ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для использования Π² высоконагруТСнных прилоТСниях.

πŸ’» Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста»

НСдостатки Kafka

Как ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ПО, Kafka Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½:

  • Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ настройки. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ настройка систСмы Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания всСх ΠΎΠΏΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€ΠΎΠΉ затрудняСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠšΠ°Ρ„ΠΊΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π½ΠΈΡ… Π½Π΅ Ρ‚Π°ΠΊ просто Π΄Π°ΠΆΠ΅ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½Π΅ говоря ΡƒΠΆΠ΅ ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….
  • ВстроСнныС инструмСнты управлСния Kafka ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ. НапримСр, названия Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.
  • НСдостаток Π·Ρ€Π΅Π»Ρ‹Ρ… клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π₯отя Kafka ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ поддСрТиваСтся Π² Java ΠΈ C/C++, клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования Π½Π΅ всСгда Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ уровня качСства. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° скоро Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½Π°: сообщСства Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ЯП интСнсивно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°Π΄ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ качСства Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Ρ€Π΅Π½Π΄Π½ΠΎΡΡ‚ΠΈ. Kafka Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°ΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Ρ€Π΅Π½Π΄Π½ΠΎΡΡ‚ΡŒ – ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ возмоТности ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ логичСскиС кластСры Π²Π½ΡƒΡ‚Ρ€ΠΈ физичСского кластСра. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ использованиС Kafka для Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ кластСрС.

***

Какой самый Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΉ use-case для Kafka Ρ‚Ρ‹ встрСчал Π² своСй ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅?