Како јС ΠšΠ°Ρ„ΠΊΠ° постао стварност

Како јС ΠšΠ°Ρ„ΠΊΠ° постао стварност

Π₯Сј Π₯Π°Π±Ρ€!

Π Π°Π΄ΠΈΠΌ Ρƒ Π’ΠΈΠ½ΠΊΠΎΡ„Ρ„ Ρ‚ΠΈΠΌΡƒ, који Ρ€Π°Π·Π²ΠΈΡ˜Π° сопствСни Ρ†Π΅Π½Ρ‚Π°Ρ€ Π·Π° ΠΎΠ±Π°Π²Π΅ΡˆΡ‚Π°Π²Π°ΡšΠ΅. Π£Π³Π»Π°Π²Π½ΠΎΠΌ Ρ€Π°Π·Π²ΠΈΡ˜Π°ΠΌ Ρƒ Јави користСћи Π‘ΠΏΡ€ΠΈΠ½Π³ Π±ΠΎΠΎΡ‚ ΠΈ Ρ€Π΅ΡˆΠ°Π²Π°ΠΌ Ρ€Π°Π·Π½Π΅ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ који сС Ρ˜Π°Π²Ρ™Π°Ρ˜Ρƒ Ρƒ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Ρƒ.

Π’Π΅Ρ›ΠΈΠ½Π° Π½Π°ΡˆΠΈΡ… микросСрвиса асинхроно ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° јСдни са Π΄Ρ€ΡƒΠ³ΠΈΠΌΠ° ΠΏΡ€Π΅ΠΊΠΎ посрСдника Π·Π° ΠΏΠΎΡ€ΡƒΠΊΠ΅. РанијС смо користили Π˜Π‘Πœ МК ΠΊΠ°ΠΎ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°, који вишС нијС ΠΌΠΎΠ³Π°ΠΎ Π΄Π° сС носи са ΠΎΠΏΡ‚Π΅Ρ€Π΅Ρ›Π΅ΡšΠ΅ΠΌ, Π°Π»ΠΈ јС Ρƒ исто Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠΌΠ°ΠΎ високС Π³Π°Ρ€Π°Π½Ρ†ΠΈΡ˜Π΅ испорукС.

Као Π·Π°ΠΌΠ΅Π½Π°, ΠΏΠΎΠ½ΡƒΡ’Π΅Π½ Π½Π°ΠΌ јС АпацхС ΠšΠ°Ρ„ΠΊΠ°, који ΠΈΠΌΠ° Π²Π΅Π»ΠΈΠΊΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π» ΡΠΊΠ°Π»ΠΈΡ€Π°ΡšΠ°, Π°Π»ΠΈ, наТалост, Π·Π°Ρ…Ρ‚Π΅Π²Π° Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π°Π½ приступ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π΅ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡ˜Π΅. ΠŸΠΎΡ€Π΅Π΄ Ρ‚ΠΎΠ³Π°, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° испоруку Π±Π°Ρ€ јСдном који ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡˆΠ΅ Ρƒ ΠšΠ°Ρ„ΠΊΠΈ нијС ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠΎ ΠΎΠ΄Ρ€ΠΆΠ°Π²Π°ΡšΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΠ³ Π½ΠΈΠ²ΠΎΠ° конзистСнтности Π²Π°Π½ ΠΊΡƒΡ‚ΠΈΡ˜Π΅. Π—Π°Ρ‚ΠΈΠΌ Ρ›Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΠΈ нашС искуство Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΈ ΠšΠ°Ρ„ΠΊΠ΅, посСбно Ρ›Ρƒ Π²Π°ΠΌ Ρ€Π΅Ρ›ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅Ρ‚Π΅ ΠΈ ΠΆΠΈΠ²ΠΈΡ‚Π΅ са Ρ‚Π°Ρ‡Π½ΠΎ јСдном испоруком.

Π“Π°Ρ€Π°Π½Ρ‚ΠΎΠ²Π°Π½Π° испорука ΠΈ још ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚ΠΎΠ³Π°

ПодСшавања ΠΎ којима сС Π³ΠΎΠ²ΠΎΡ€ΠΈ Ρƒ наставку ΠΏΠΎΠΌΠΎΡ›ΠΈ Ρ›Π΅ Ρƒ ΡΠΏΡ€Π΅Ρ‡Π°Π²Π°ΡšΡƒ Π±Ρ€ΠΎΡ˜Π½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° са ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΈΠΌ поставкама Π²Π΅Π·Π΅. Али ΠΏΡ€Π²ΠΎ Π±ΠΈΡ… ΠΆΠ΅Π»Π΅ΠΎ Π΄Π° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌ ΠΏΠ°ΠΆΡšΡƒ Π½Π° јСдан ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ који Ρ›Π΅ ΠΎΠ»Π°ΠΊΡˆΠ°Ρ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ›Π΅ ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°.

Ово Ρ›Π΅ ΠΏΠΎΠΌΠΎΡ›ΠΈ Π˜Π” ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π° Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΡ’Π°Ρ‡Π° ΠΈ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Π°. На ΠΏΡ€Π²ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ користити ΠΈΠΌΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ ΠΊΠ°ΠΎ врСдност, Π° Ρƒ Π²Π΅Ρ›ΠΈΠ½ΠΈ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²Π° Ρ‚ΠΎ Ρ›Π΅ функционисати. Иако ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π° ΠΊΠ°Π΄Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° користи Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Π° ΠΈ Π²ΠΈ ΠΈΠΌ Π΄Π°Ρ‚Π΅ исти Ρ†Π»ΠΈΠ΅Π½Ρ‚.ΠΈΠ΄, Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π° слСдСћим ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ΅ΠΌ:

org.apache.kafka.common.utils.AppInfoParser β€” Error registering AppInfo mbean javax.management.InstanceAlreadyExistsException: kafka.consumer:type=app-info,id=kafka.test-0

Ако ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° користитС ЈМКБ Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ са ΠšΠ°Ρ„ΠΊΠΎΠΌ, ΠΎΠ½Π΄Π° Π±ΠΈ ΠΎΠ²ΠΎ ΠΌΠΎΠ³Π°ΠΎ Π±ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, Π½Π°Ρ˜Π±ΠΎΡ™Π΅ јС користити ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ˜Ρƒ Π½Π°Π·ΠΈΠ²Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ ΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Π·ΠΈΠ²Π° Ρ‚Π΅ΠΌΠ΅ ΠΊΠ°ΠΎ врСдности Ρ†Π»ΠΈΠ΅Π½Ρ‚.ΠΈΠ΄. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ нашС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅ сС ΠΌΠΎΠΆΠ΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Ρƒ ΠΈΠ·Π»Π°Π·Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΊΠ°Ρ„ΠΊΠ°-ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡ΠΊΠ΅ Π³Ρ€ΡƒΠΏΠ΅ ΠΈΠ· услуТних ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈΠ· Π¦ΠΎΠ½Ρ„Π»ΡƒΠ΅Π½Ρ‚Π°:

Како јС ΠšΠ°Ρ„ΠΊΠ° постао стварност

ПоглСдајмо сада сцСнарио Π·Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΎΠ²Π°Π½Ρƒ испоруку ΠΏΠΎΡ€ΡƒΠΊΠ΅. ΠšΠ°Ρ„ΠΊΠ° ΠŸΡ€ΠΎΠ΄ΡƒΡ†Π΅Ρ€ ΠΈΠΌΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ ацкс, ΡˆΡ‚ΠΎ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅Ρ‚Π΅ Π½Π°ΠΊΠΎΠ½ ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΏΠΎΡ‚Π²Ρ€Π΄Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π»ΠΈΠ΄Π΅Ρ€ кластСра сматра Π΄Π° јС ΠΏΠΎΡ€ΡƒΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ написана. Овај ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ ΠΌΠΎΠΆΠ΅ ΠΈΠΌΠ°Ρ‚ΠΈ слСдСћС врСдности:

  • 0 β€” ΠΏΠΎΡ‚Π²Ρ€Π΄Π° сС Π½Π΅Ρ›Π΅ ΡƒΠ·Π΅Ρ‚ΠΈ Ρƒ ΠΎΠ±Π·ΠΈΡ€.
  • 1 јС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€, само 1 Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° Π·Π° ΠΏΠΎΡ‚Π²Ρ€Π΄Ρƒ.
  • βˆ’1 β€” ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° јС ΠΏΠΎΡ‚Π²Ρ€Π΄Π° свих синхронизованих Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° (подСшавањС кластСра ΠΌΠΈΠ½.инсинц.рСплицас).

Из Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ… врСдности јасно јС Π΄Π° ацкс јСднак -1 дајС Π½Π°Ρ˜Ρ˜Π°Ρ‡Ρƒ Π³Π°Ρ€Π°Π½Ρ†ΠΈΡ˜Ρƒ Π΄Π° ΠΏΠΎΡ€ΡƒΠΊΠ° Π½Π΅Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΈΠ·Π³ΡƒΠ±Ρ™Π΅Π½Π°.

Као ΡˆΡ‚ΠΎ сви Π·Π½Π°ΠΌΠΎ, дистрибуирани систСми су Π½Π΅ΠΏΠΎΡƒΠ·Π΄Π°Π½ΠΈ. Π”Π° Π±ΠΈ сС Π·Π°ΡˆΡ‚ΠΈΡ‚ΠΈΠΎ ΠΎΠ΄ ΠΏΡ€ΠΎΠ»Π°Π·Π½ΠΈΡ… Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°, ΠšΠ°Ρ„ΠΊΠ° ΠŸΡ€ΠΎΠ΄ΡƒΡ†Π΅Ρ€ ΠΏΡ€ΡƒΠΆΠ° ΠΎΠΏΡ†ΠΈΡ˜Ρƒ ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΡƒΡˆΠ°Π²Π°, ΡˆΡ‚ΠΎ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° подСситС Π±Ρ€ΠΎΡ˜ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ слања ΡƒΠ½ΡƒΡ‚Π°Ρ€ испорукС.Ρ‚ΠΈΠΌΠ΅ΠΎΡƒΡ‚.мс. ΠŸΠΎΡˆΡ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΈΡ… ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° ΠΈΠΌΠ° ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Ρƒ врСдност Π˜Π½Ρ‚Π΅Π³Π΅Ρ€.МАКБ_ВАЛУЕ (2147483647), Π±Ρ€ΠΎΡ˜ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΈΡ… ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС подСси ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΎΠΌ само испорукС.Ρ‚ΠΈΠΌΠ΅ΠΎΡƒΡ‚.мс.

ИдСмо ΠΊΠ° Ρ‚Π°Ρ‡Π½ΠΎ јСдној испоруци

НавСдСна подСшавања ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°Ρ˜Ρƒ нашСм ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΡ’Π°Ρ‡Ρƒ Π΄Π° ΠΈΡΠΏΠΎΡ€ΡƒΡ‡ΡƒΡ˜Π΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅ са високом Π³Π°Ρ€Π°Π½Ρ†ΠΈΡ˜ΠΎΠΌ. Π₯ајдС сада Π΄Π° Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€Π°ΠΌΠΎ ΠΎ Ρ‚ΠΎΠΌΠ΅ ΠΊΠ°ΠΊΠΎ осигурати Π΄Π° само јСдна копија ΠΏΠΎΡ€ΡƒΠΊΠ΅ Π±ΡƒΠ΄Π΅ написана Π½Π° ΠšΠ°Ρ„ΠΊΠΈΠ½Ρƒ Ρ‚Π΅ΠΌΡƒ? Π£ Π½Π°Ρ˜Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ˜Π΅ΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, Π΄Π° бистС Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΠ»ΠΈ, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС Π΄Π° подСситС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ Π½Π° ΠŸΡ€ΠΎΠ΄ΡƒΡ†Π΅Ρ€ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ.ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π° Π½Π° истинито. Π˜Π΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π° Π³Π°Ρ€Π°Π½Ρ‚ΡƒΡ˜Π΅ Π΄Π° сС само јСдна ΠΏΠΎΡ€ΡƒΠΊΠ° ΡƒΠΏΠΈΡΡƒΡ˜Π΅ Π½Π° ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½Ρƒ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Ρƒ јСднС Ρ‚Π΅ΠΌΠ΅. ΠŸΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ² Π·Π° ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°ΡšΠ΅ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π΅ су врСдности ацкс = свС, ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜ ΠΏΠΎΠ½ΠΎΠ²ΠΎ > 0, ΠΌΠ°ΠΊ.ΠΈΠ½.Ρ„Π»ΠΈΠ³Ρ…Ρ‚.рСкуСстс.ΠΏΠ΅Ρ€.Ρ†ΠΎΠ½Π½Π΅Ρ†Ρ‚ΠΈΠΎΠ½ ≀ 5. Ако ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ Π½Π΅ ΠΎΠ΄Ρ€Π΅Π΄ΠΈ ΠΎΠ²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅, Π³ΠΎΡ€Π΅Π½Π°Π²Π΅Π΄Π΅Π½Π΅ врСдности Ρ›Π΅ Π±ΠΈΡ‚ΠΈ аутоматски подСшСнС.

Када јС ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π° конфигурисана, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС осигурати Π΄Π° истС ΠΏΠΎΡ€ΡƒΠΊΠ΅ сваки ΠΏΡƒΡ‚ Π·Π°Π²Ρ€ΡˆΠ°Π²Π°Ρ˜Ρƒ Π½Π° истим ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π°ΠΌΠ°. Ово сС ΠΌΠΎΠΆΠ΅ ΡƒΡ€Π°Π΄ΠΈΡ‚ΠΈ ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ΠΌ ΠΊΡ™ΡƒΡ‡Π° ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠ°Ρ€Ρ‚ΠΈΡ‚ΠΈΠΎΠ½Π΅Ρ€.цласс Π½Π° ΠŸΡ€ΠΎΠ΄ΡƒΡ†Π΅Ρ€. ΠŸΠΎΡ‡Π½ΠΈΠΌΠΎ са ΠΊΡ™ΡƒΡ‡Π΅ΠΌ. ΠœΠΎΡ€Π° Π±ΠΈΡ‚ΠΈ исти Π·Π° сваки поднСсак. Ово сС Π»Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ постићи ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ΠΌ Π±ΠΈΠ»ΠΎ ΠΊΠΎΠ³ пословног Π˜Π”-Π° ΠΈΠ· ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎΠ³ поста. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ ΠΏΠ°Ρ€Ρ‚ΠΈΡ‚ΠΈΠΎΠ½Π΅Ρ€.цласс ΠΈΠΌΠ° ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Ρƒ врСдност βˆ’ Π”Π΅Ρ„Π°ΡƒΠ»Ρ‚ΠŸΠ°Ρ€Ρ‚ΠΈΡ‚ΠΈΠΎΠ½Π΅Ρ€. Π‘Π° ΠΎΠ²ΠΎΠΌ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜ΠΎΠΌ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΎΠ½ΠΈΡΠ°ΡšΠ°, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ сС понашамо ΠΎΠ²Π°ΠΊΠΎ:

  • Ако јС ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π° Сксплицитно Π½Π°Π²Π΅Π΄Π΅Π½Π° ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ слања ΠΏΠΎΡ€ΡƒΠΊΠ΅, ΠΎΠ½Π΄Π° јС користимо.
  • Ако ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π° нијС Π½Π°Π²Π΅Π΄Π΅Π½Π°, Π°Π»ΠΈ јС ΠΊΡ™ΡƒΡ‡ Π½Π°Π²Π΅Π΄Π΅Π½, ΠΈΠ·Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Ρƒ ΠΏΡ€Π΅ΠΌΠ° Ρ…Π΅ΡˆΡƒ ΠΊΡ™ΡƒΡ‡Π°.
  • Ако ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π° ΠΈ ΠΊΡ™ΡƒΡ‡ нису Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ, ΠΈΠ·Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π΅ Ρ˜Π΅Π΄Π½Ρƒ ΠΏΠΎ Ρ˜Π΅Π΄Π½Ρƒ (ΠΊΡ€ΡƒΠΆΠ½ΠΎ).

Π’Π°ΠΊΠΎΡ’Π΅, ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ ΠΊΡ™ΡƒΡ‡Π° ΠΈ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎ слањС са ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΌΠ°ΠΊ.ΠΈΠ½.Ρ„Π»ΠΈΠ³Ρ…Ρ‚.рСкуСстс.ΠΏΠ΅Ρ€.Ρ†ΠΎΠ½Π½Π΅Ρ†Ρ‚ΠΈΠΎΠ½ = 1 дајС Π²Π°ΠΌ ΠΏΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™Π΅Π½Ρƒ ΠΎΠ±Ρ€Π°Π΄Ρƒ ΠΏΠΎΡ€ΡƒΠΊΠ° Π½Π° ΠŸΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Ρƒ. Π’Π°ΠΊΠΎΡ’Π΅ јС Π²Ρ€Π΅Π΄Π½ΠΎ Π·Π°ΠΏΠ°ΠΌΡ‚ΠΈΡ‚ΠΈ Π΄Π° Π°ΠΊΠΎ јС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° приступа конфигурисана Π½Π° вашСм кластСру, ΠΎΠ½Π΄Π° Ρ›Π΅ Π²Π°ΠΌ Ρ‚Ρ€Π΅Π±Π°Ρ‚ΠΈ ΠΏΡ€Π°Π²Π° Π΄Π° ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρƒ Ρ‚Π΅ΠΌΡƒ.

Ако Π²Π°ΠΌ ΠΈΠ·Π½Π΅Π½Π°Π΄Π° Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ˜Ρƒ могућности ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΠ³ слања ΠΏΠΎ ΠΊΡ™ΡƒΡ‡Ρƒ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° страни ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΡ’Π°Ρ‡Π° Π·Π°Ρ…Ρ‚Π΅Π²Π° ΠΎΠ΄Ρ€ΠΆΠ°Π²Π°ΡšΠ΅ конзистСнтности ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΡ… ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π°, ΠΎΠ½Π΄Π° Ρ›Π΅ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅ Π΄ΠΎΡ›ΠΈ Ρƒ ΠΏΠΎΠΌΠΎΡ›. ΠŸΠΎΡ€Π΅Π΄ Ρ‚ΠΎΠ³Π°, користСћи Π»Π°Π½Ρ‡Π°Π½Ρƒ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Ρƒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ условно Π΄Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΡƒΡ˜Π΅Ρ‚Π΅ запис Ρƒ ΠšΠ°Ρ„ΠΊΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, са записом Ρƒ Π±Π°Π·ΠΈ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°. Π”Π° Π±ΠΈ сС ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠ»ΠΎ трансакционо слањС ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΡ’Π°Ρ‡Ρƒ, ΠΌΠΎΡ€Π° Π±ΠΈΡ‚ΠΈ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎ ΠΈ Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΎ подСшСно Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜ΡΠΊΠΈ.ΠΈΠ΄. Ако ваш ΠšΠ°Ρ„ΠΊΠ° кластСр ΠΈΠΌΠ° конфигурисану ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρƒ приступа, ΠΎΠ½Π΄Π° Ρ›Π΅ трансакционом запису, ΠΏΠΎΠΏΡƒΡ‚ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΠ³ записа, Π±ΠΈΡ‚ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅ Π·Π° писањС, којС сС ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ΄Π΅Π»ΠΈΡ‚ΠΈ маском користСћи врСдност сачувану Ρƒ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜ΠΈ.ΠΈΠ΄.

Π€ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ, Π±ΠΈΠ»ΠΎ који стринг, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС ΠΈΠΌΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅, ΠΌΠΎΠΆΠ΅ сС користити ΠΊΠ°ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅. Али Π°ΠΊΠΎ ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ инстанци истС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ са истим Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜ΡΠΊΠΈΠΌ.ΠΈΠ΄-ΠΎΠΌ, ΠΎΠ½Π΄Π° Ρ›Π΅ ΠΏΡ€Π²Π° ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚Π° инстанца Π±ΠΈΡ‚ΠΈ заустављСна са Π³Ρ€Π΅ΡˆΠΊΠΎΠΌ, ΠΏΠΎΡˆΡ‚ΠΎ Ρ›Π΅ ΠšΠ°Ρ„ΠΊΠ° Ρ‚ΠΎ сматрати Π·ΠΎΠΌΠ±ΠΈ процСсом.

org.apache.kafka.common.errors.ProducerFencedException: Producer attempted an operation with an old epoch. Either there is a newer producer with the same transactionalId, or the producer's transaction has been expired by the broker.

Π”Π° бисмо Ρ€Π΅ΡˆΠΈΠ»ΠΈ овај ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈΠΌΠ΅Π½Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ додајСмо суфикс Ρƒ ΠΎΠ±Π»ΠΈΠΊΡƒ ΠΈΠΌΠ΅Π½Π° хоста, који добијамо ΠΈΠ· ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΈΡ… ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ°.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΡ’Π°Ρ‡ јС конфигурисан, Π°Π»ΠΈ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅ Π½Π° ΠšΠ°Ρ„ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡˆΡƒ само ΠΎΠ±ΠΈΠΌ ΠΏΠΎΡ€ΡƒΠΊΠ΅. Π‘Π΅Π· ΠΎΠ±Π·ΠΈΡ€Π° Π½Π° статус Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅, ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΎΠ΄ΠΌΠ°Ρ… ΠΈΠ΄Π΅ Π½Π° Ρ‚Π΅ΠΌΡƒ, Π°Π»ΠΈ ΠΈΠΌΠ° Π΄ΠΎΠ΄Π°Ρ‚Π½Π΅ систСмскС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅.

Π”Π° Π±ΠΈ сС спрСчило Π΄Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡ ΡƒΠ½Π°ΠΏΡ€Π΅Π΄ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π° Ρ‚Π°ΠΊΠ²Π΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС Π΄Π° подСси ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜Π°.Π½ΠΈΠ²ΠΎ Π½Π° Ρ€Π΅Π°Π΄_Ρ†ΠΎΠΌΠΌΠΈΡ‚Ρ‚Π΅Π΄ врСдност. Π’Π°ΠΊΠ°Π² ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡ Ρ›Π΅ ΠΌΠΎΡ›ΠΈ Π΄Π° Ρ‡ΠΈΡ‚Π° нСтрансакционС ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠΊΠ°ΠΎ ΠΈ Ρ€Π°Π½ΠΈΡ˜Π΅, Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜ΡΠΊΠ΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅ Ρ‚Π΅ΠΊ Π½Π°ΠΊΠΎΠ½ ΡƒΡ€Π΅Π·ΠΈΠ²Π°ΡšΠ°.
Ако стС подСсили сва ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ Π½Π°Π²Π΅Π΄Π΅Π½Π° подСшавања, ΠΎΠ½Π΄Π° стС конфигурисали Ρ‚Π°Ρ‡Π½ΠΎ јСдном испоруку. ЧСститам!

Али ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ још јСдна нијанса. Врансацтионал.ΠΈΠ΄, који смо конфигурисали ΠΈΠ·Π½Π°Π΄, јС Π·Π°ΠΏΡ€Π°Π²ΠΎ прСфикс Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅. Π£ ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€Ρƒ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° ΠΌΡƒ сС додајС Ρ€Π΅Π΄Π½ΠΈ Π±Ρ€ΠΎΡ˜. ΠŸΡ€ΠΈΠΌΡ™Π΅Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сС издајС Π½Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°.ΠΈΠ΄.Π΅ΠΊΠΏΠΈΡ€Π°Ρ‚ΠΈΠΎΠ½.мс, који јС конфигурисан Π½Π° ΠšΠ°Ρ„ΠΊΠ° кластСру ΠΈ ΠΈΠΌΠ° ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Ρƒ врСдност β€ž7 Π΄Π°Π½Π°β€œ. Ако Π·Π° Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° нијС ΠΏΡ€ΠΈΠΌΠΈΠ»Π° Π½ΠΈΡ˜Π΅Π΄Π½Ρƒ ΠΏΠΎΡ€ΡƒΠΊΡƒ, ΠΏΡ€ΠΈΠΌΠΈΡ›Π΅Ρ‚Π΅ ΠΊΠ°Π΄Π° ΠΏΠΎΠΊΡƒΡˆΠ°Ρ‚Π΅ слСдСћС Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜ΡΠΊΠΎ слањС Π˜Π½Π²Π°Π»ΠΈΠ΄ΠŸΠΈΠ΄ΠœΠ°ΠΏΠΏΠΈΠ½Π³Π•ΠΊΡ†Π΅ΠΏΡ‚ΠΈΠΎΠ½. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅ Ρ›Π΅ Ρ‚Π°Π΄Π° ΠΈΠ·Π΄Π°Ρ‚ΠΈ Π½ΠΎΠ²ΠΈ Ρ€Π΅Π΄Π½ΠΈ Π±Ρ€ΠΎΡ˜ Π·Π° слСдСћу Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Ρƒ. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ ΠΈΠ·Π³ΡƒΠ±Ρ™Π΅Π½Π° Π°ΠΊΠΎ сС ΠΈΠ·ΡƒΠ·Π΅Ρ‚ΠΊΠΎΠΌ Π˜Π½Π²Π°Π»ΠΈΠ΄ΠŸΠΈΠ΄ΠœΠ°ΠΏΠΏΠΈΠ½Π³Π•ΠΊΡ†Π΅ΠΏΡ‚ΠΈΠΎΠ½ Π½Π΅ Ρ€ΡƒΠΊΡƒΡ˜Π΅ исправно.

УмСсто ΡƒΠΊΡƒΠΏΠ½ΠΈΡ…

Као ΡˆΡ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅, нијС Π΄ΠΎΠ²ΠΎΡ™Π½ΠΎ само послати ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠšΠ°Ρ„ΠΊΠΈ. ΠœΠΎΡ€Π°Ρ‚Π΅ Π΄Π° ΠΈΠ·Π°Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ˜Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€Π° ΠΈ Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚Π΅ спрСмни Π·Π° Π±Ρ€Π·Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅. Π£ ΠΎΠ²ΠΎΠΌ Ρ‡Π»Π°Π½ΠΊΡƒ сам ΠΏΠΎΠΊΡƒΡˆΠ°ΠΎ Π΄Π° Π΄Π΅Ρ‚Π°Ρ™Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ΅ΠΌ подСшавањС Ρ‚Π°Ρ‡Π½ΠΎ јСдном испорукС ΠΈ описао Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° са ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°ΠΌΠ° Ρ†Π»ΠΈΠ΅Π½Ρ‚.ΠΈΠ΄ ΠΈ трансацтионал.ΠΈΠ΄ Π½Π° којС смо наишли. Испод јС саТСтак подСшавања ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΡ’Π°Ρ‡Π° ΠΈ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Π°.

ΠŸΡ€ΠΎΠ΄ΡƒΡ†Π΅Π½Ρ‚:

  1. ацкс = свС
  2. ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜ΠΈ > 0
  3. ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ.ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π° = истина
  4. ΠΌΠ°ΠΊ.ΠΈΠ½.Ρ„Π»ΠΈΠ³Ρ…Ρ‚.рСкуСстс.ΠΏΠ΅Ρ€.Ρ†ΠΎΠ½Π½Π΅Ρ†Ρ‚ΠΈΠΎΠ½ ≀ 5 (1 Π·Π° ΡƒΡ€Π΅Π΄Π½ΠΎ слањС)
  5. Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°.ΠΈΠ΄ = ${ΠΈΠΌΠ΅-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅}-${ΠΈΠΌΠ΅ хоста}

ΠŸΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡:

  1. исолатион.Π»Π΅Π²Π΅Π» = Ρ€Π΅Π°Π΄_Ρ†ΠΎΠΌΠΌΠΈΡ‚Ρ‚Π΅Π΄

Π”Π° бисмо смањили Π³Ρ€Π΅ΡˆΠΊΠ΅ Ρƒ Π±ΡƒΠ΄ΡƒΡ›ΠΈΠΌ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°ΠΌΠ°, Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ смо сопствСни ΠΎΠΌΠΎΡ‚Π°Ρ‡ ΠΏΡ€Π΅ΠΊΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅ ΠΎΠΏΡ€ΡƒΠ³Π΅, Π³Π΄Π΅ су врСдности Π·Π° Π½Π΅ΠΊΠ΅ ΠΎΠ΄ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€Π° Π²Π΅Ρ› подСшСнС.

Π•Π²ΠΎ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»Π° Π·Π° самостално ΡƒΡ‡Π΅ΡšΠ΅:

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€