Поновна ΠΎΠ±Ρ€Π°Π΄Π° Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° ΠΏΡ€ΠΈΠΌΡ™Π΅Π½ΠΈΡ… ΠΎΠ΄ ΠšΠ°Ρ„ΠΊΠ΅

Поновна ΠΎΠ±Ρ€Π°Π΄Π° Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° ΠΏΡ€ΠΈΠΌΡ™Π΅Π½ΠΈΡ… ΠΎΠ΄ ΠšΠ°Ρ„ΠΊΠ΅

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

НСдавно сам ја ΠΏΠΎΠ΄Π΅Π»ΠΈΠΎ својС искуство ΠΎ Ρ‚ΠΎΠΌΠ΅ којС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΌΠΈ ΠΊΠ°ΠΎ Ρ‚ΠΈΠΌ Π½Π°Ρ˜Ρ‡Π΅ΡˆΡ›Π΅ користимо Π·Π° ΠšΠ°Ρ„ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΡ’Π°Ρ‡Π° ΠΈ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Π° Π΄Π° Π±ΠΈ сС ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠΈΠ»ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΎΡ˜ испоруци. Π£ ΠΎΠ²ΠΎΠΌ Ρ‡Π»Π°Π½ΠΊΡƒ ΠΆΠ΅Π»ΠΈΠΌ Π΄Π° Π²Π°ΠΌ ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊΠΎ смо ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΠ½ΠΎΠ²Π½Ρƒ ΠΎΠ±Ρ€Π°Π΄Ρƒ Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° добијСног ΠΎΠ΄ ΠšΠ°Ρ„ΠΊΠ΅ ΠΊΠ°ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅ нСдоступности спољног систСма.

Π‘Π°Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Ρ€Π°Π΄Π΅ Ρƒ Π²Π΅ΠΎΠΌΠ° слоТСном ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΡƒ. Пословна Π»ΠΎΠ³ΠΈΠΊΠ° ΡƒΠΌΠΎΡ‚Π°Π½Π° Ρƒ ΠΌΠΎΠ΄Π΅Ρ€Π½Ρƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Ρƒ, која Ρ€Π°Π΄ΠΈ Ρƒ Π”ΠΎΡ†ΠΊΠ΅Ρ€ ΠΈΠΌΠΈΡŸΡƒ којим ΡƒΠΏΡ€Π°Π²Ρ™Π° оркСстратор ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅Ρ ΠΈΠ»ΠΈ ΠžΠΏΠ΅Π½Π‘Ρ…ΠΈΡ„Ρ‚, ΠΈ ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° са Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°ΠΌΠ° ΠΈΠ»ΠΈ пословним Ρ€Π΅ΡˆΠ΅ΡšΠΈΠΌΠ° ΠΊΡ€ΠΎΠ· Π»Π°Π½Π°Ρ† Ρ„ΠΈΠ·ΠΈΡ‡ΠΊΠΈΡ… ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ… Ρ€ΡƒΡ‚Π΅Ρ€Π°. Π£ Ρ‚Π°ΠΊΠ²ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΡƒ ΡƒΠ²Π΅ΠΊ сС Π½Π΅ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠΊΠ²Π°Ρ€ΠΈΡ‚ΠΈ, Ρ‚Π°ΠΊΠΎ Π΄Π° јС ΠΏΠΎΠ½ΠΎΠ²Π½Π° ΠΎΠ±Ρ€Π°Π΄Π° Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° Π°ΠΊΠΎ јС јСдан ΠΎΠ΄ спољних систСма нСдоступан Π²Π°ΠΆΠ°Π½ Π΄Π΅ΠΎ Π½Π°ΡˆΠΈΡ… пословних процСса.

Како јС Π±ΠΈΠ»ΠΎ ΠΏΡ€Π΅ ΠšΠ°Ρ„ΠΊΠ΅

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

Ако јС Π³Ρ€Π΅ΡˆΠΊΠ° Π±ΠΈΠ»Π° ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΈ ΠΌΠΎΠ³Π»ΠΈ бисмо Π΄Π° јС ΡƒΡ‚Π²Ρ€Π΄ΠΈΠΌΠΎ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, РСсоурцСАццСссЕкцСптион Π½Π° Π₯ВВП ΠΏΠΎΠ·ΠΈΠ²Ρƒ ΠΈΠ»ΠΈ ΠœΠΎΠ½Π³ΠΎΠ’ΠΈΠΌΠ΅ΠΎΡƒΡ‚Π•ΠΊΡ†Π΅ΠΏΡ‚ΠΈΠΎΠ½ Π½Π° ΠœΠΎΠ½Π³ΠΎΠ”Π± Π·Π°Ρ…Ρ‚Π΅Π²Ρƒ), Ρ‚Π°Π΄Π° Π±ΠΈ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° ступила Π½Π° снагу. Π‘Π΅Π· ΠΎΠ±Π·ΠΈΡ€Π° Π½Π° Π»ΠΎΠ³ΠΈΠΊΡƒ Π³Ρ€Π°Π½Π°ΡšΠ° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅, ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π° ΠΏΠΎΡ€ΡƒΠΊΠ° јС ΠΏΡ€Π΅ΠΌΠ΅ΡˆΡ‚Π΅Π½Π° ΠΈΠ»ΠΈ Ρƒ систСмски Ρ€Π΅Π΄ Π·Π° ΠΎΠ΄Π»ΠΎΠΆΠ΅Π½ΠΎ слањС, ΠΈΠ»ΠΈ Ρƒ посСбну Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ која јС Π΄Π°Π²Π½ΠΎ Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½Π° Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎ слањС ΠΏΠΎΡ€ΡƒΠΊΠ°. Ово ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ Π±Ρ€ΠΎΡ˜ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ слања Ρƒ Π·Π°Π³Π»Π°Π²Ρ™Ρƒ ΠΏΠΎΡ€ΡƒΠΊΠ΅, који јС Π²Π΅Π·Π°Π½ Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» кашњСња ΠΈΠ»ΠΈ ΠΊΡ€Π°Ρ˜ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅. Ако смо дошли Π΄ΠΎ ΠΊΡ€Π°Ρ˜Π° ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜Π΅, Π°Π»ΠΈ спољни систСм још ΡƒΠ²Π΅ΠΊ нијС доступан, ΠΏΠΎΡ€ΡƒΠΊΠ° Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΡΠΌΠ΅ΡˆΡ‚Π΅Π½Π° Ρƒ Π”Π›Πš Ρ€Π°Π΄ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ³ Ρ€Π°ΡˆΡ‡Π»Π°ΡšΠΈΠ²Π°ΡšΠ°.

ΠŸΡ€ΠΎΠ½Π°Π»Π°ΠΆΠ΅ΡšΠ΅ Ρ€Ρ˜Π΅ΡˆΠ΅ΡšΠ°

ΠŸΡ€Π΅Ρ‚Ρ€Π°ΠΆΠΈΠ²Π°ΡšΠ΅ Π½Π° Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ½Π°Ρ›ΠΈ слСдСћС ΠΎΠ΄Π»ΡƒΠΊΠ°. Π£ΠΊΡ€Π°Ρ‚ΠΊΠΎ, ΠΏΡ€Π΅Π΄Π»Π°ΠΆΠ΅ сС ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Ρ‚Π΅ΠΌΠ΅ Π·Π° сваки ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» кашњСња ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡ΠΊΠΈΡ… Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° са странС, којС Ρ›Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΠΈ ΠΏΠΎΡ€ΡƒΠΊΠ΅ са ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΠΌ кашњСњСм.

Поновна ΠΎΠ±Ρ€Π°Π΄Π° Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° ΠΏΡ€ΠΈΠΌΡ™Π΅Π½ΠΈΡ… ΠΎΠ΄ ΠšΠ°Ρ„ΠΊΠ΅

Упркос Π²Π΅Π»ΠΈΠΊΠΎΠΌ Π±Ρ€ΠΎΡ˜Ρƒ ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½ΠΈΡ… ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ°, Ρ‡ΠΈΠ½ΠΈ ΠΌΠΈ сС Π΄Π° Ρ‚ΠΎ нијС сасвим ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. ΠŸΡ€Π΅ свСга, Π·Π°Ρ‚ΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€, ΠΏΠΎΡ€Π΅Π΄ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π΅ пословних Π·Π°Ρ…Ρ‚Π΅Π²Π°, ΠΌΠΎΡ€Π°Ρ‚ΠΈ Π΄Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠΈ доста Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Ρƒ описаног ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°.

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

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

Π‘ΠΏΡ€ΠΈΠ½Π³-ΠΊΠ°Ρ„ΠΊΠ° сама ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Π΅ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° ЦонтаинСрАварСЕррорΠ₯Π°Π½Π΄Π»Π΅Ρ€, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π‘Π΅Π΅ΠΊΠ’ΠΎΠ¦ΡƒΡ€Ρ€Π΅Π½Ρ‚Π•Ρ€Ρ€ΠΎΡ€Π₯Π°Π½Π΄Π»Π΅Ρ€, са којим ΠΌΠΎΠΆΠ΅Ρ‚Π΅ каснијС ΠΎΠ±Ρ€Π°Π΄ΠΈΡ‚ΠΈ ΠΏΠΎΡ€ΡƒΠΊΡƒ Π±Π΅Π· ΠΏΠΎΠΌΠ΅Ρ€Π°ΡšΠ° офсСта Ρƒ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Π³Ρ€Π΅ΡˆΠΊΠ΅. ΠŸΠΎΡ‡Π΅Π²ΡˆΠΈ ΠΎΠ΄ Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ спринг-ΠΊΠ°Ρ„ΠΊΠ° 2.3, постало јС ΠΌΠΎΠ³ΡƒΡ›Π΅ подСсити Π‘Π°Ρ†ΠΊΠžΡ„Ρ„ΠŸΠΎΠ»ΠΈΡ†ΠΈ.

Овај приступ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΎΠ±Ρ€Π°Ρ’Π΅Π½Π΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠΏΡ€Π΅ΠΆΠΈΠ²Π΅ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅, Π°Π»ΠΈ још ΡƒΠ²Π΅ΠΊ Π½Π΅ ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ Π”Π›Πš ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ. ΠžΠ²Ρƒ ΠΎΠΏΡ†ΠΈΡ˜Ρƒ смо ΠΈΠ·Π°Π±Ρ€Π°Π»ΠΈ ΠΏΠΎΡ‡Π΅Ρ‚ΠΊΠΎΠΌ 2019. Π³ΠΎΠ΄ΠΈΠ½Π΅, оптимистично Π²Π΅Ρ€ΡƒΡ˜ΡƒΡ›ΠΈ Π΄Π° Π”Π›Πš Π½Π΅Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π°Π½ (ΠΈΠΌΠ°Π»ΠΈ смо срСћС ΠΈ Π·Π°ΠΏΡ€Π°Π²ΠΎ Π½Π°ΠΌ нијС Π±ΠΈΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π°Π½ Π½Π°ΠΊΠΎΠ½ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ мСсСци Ρ€Π°Π΄Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ са Ρ‚Π°ΠΊΠ²ΠΈΠΌ систСмом Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½Ρƒ ΠΎΠ±Ρ€Π°Π΄Ρƒ). ΠŸΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅ Π³Ρ€Π΅ΡˆΠΊΠ΅ су Π΄ΠΎΠ²Π΅Π»Π΅ Π΄ΠΎ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° Π‘Π΅Π΅ΠΊΠ’ΠΎΠ¦ΡƒΡ€Ρ€Π΅Π½Ρ‚Π•Ρ€Ρ€ΠΎΡ€Π₯Π°Π½Π΄Π»Π΅Ρ€-Π°. ΠŸΡ€Π΅ΠΎΡΡ‚Π°Π»Π΅ Π³Ρ€Π΅ΡˆΠΊΠ΅ су ΠΎΠ΄ΡˆΡ‚Π°ΠΌΠΏΠ°Π½Π΅ Ρƒ Π΄Π½Π΅Π²Π½ΠΈΠΊΡƒ, ΡˆΡ‚ΠΎ јС Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π°Π»ΠΎ офсСтом, Π° ΠΎΠ±Ρ€Π°Π΄Π° јС настављСна са слСдСћом ΠΏΠΎΡ€ΡƒΠΊΠΎΠΌ.

ΠšΠΎΠ½Π°Ρ‡Π½Π° ΠΎΠ΄Π»ΡƒΠΊΠ°

Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° заснована Π½Π° Π‘Π΅Π΅ΠΊΠ’ΠΎΠ¦ΡƒΡ€Ρ€Π΅Π½Ρ‚Π•Ρ€Ρ€ΠΎΡ€Π₯Π°Π½Π΄Π»Π΅Ρ€-Ρƒ нас јС подстакла Π΄Π° Ρ€Π°Π·Π²ΠΈΡ˜Π΅ΠΌΠΎ сопствСни ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎ слањС ΠΏΠΎΡ€ΡƒΠΊΠ°.

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

Π‘Π°ΠΌΠ° ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° ΠΌΠΎΡ€Π° Π±ΠΈΡ‚ΠΈ сачувана Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ, која јС ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π½Π° Π·Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ слСдСћСг ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΊΠ°Π΄Π° Π΄ΠΎΡ’Π΅ Π΄ΠΎ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅ Π³Ρ€Π΅ΡˆΠΊΠ΅.

Π—Π°ΡƒΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Π° Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ Π»ΠΈΠ½Π΅Π°Ρ€Π½Π΅ Π»ΠΎΠ³ΠΈΠΊΠ΅

Када Ρ€Π°Π΄ΠΈΡ‚Π΅ са спринг-ΠΊΠ°Ρ„ΠΊΠ°, ΠΊΠΎΠ΄ Π·Π° Π·Π°ΡƒΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Π° ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π°Ρ‚ΠΈ ΠΎΡ‚ΠΏΡ€ΠΈΠ»ΠΈΠΊΠ΅ ΠΎΠ²Π°ΠΊΠΎ:

public void pauseListenerContainer(MessageListenerContainer listenerContainer, 
                                   Instant retryAt) {
        if (nonNull(retryAt) && listenerContainer.isRunning()) {
            listenerContainer.stop();
            taskScheduler.schedule(() -> listenerContainer.start(), retryAt);
            return;
        }
        // to DLQ
    }

Π£ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, рСтриАт јС Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠœΠ΅ΡΡΠ°Π³Π΅Π›ΠΈΡΡ‚Π΅Π½Π΅Ρ€Π¦ΠΎΠ½Ρ‚Π°ΠΈΠ½Π΅Ρ€ Π°ΠΊΠΎ јС још ΡƒΠ²Π΅ΠΊ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚. Поновно ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Ρ›Π΅ сС дСсити Ρƒ посСбној Π½ΠΈΡ‚ΠΈ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΎΡ˜ Ρƒ ВаскБцхСдулСр-Ρƒ, Ρ‡ΠΈΡ˜Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° јС Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΎΠ±Π΅Π·Π±Π΅Ρ’Π΅Π½Π° Π΄ΠΎ ΠΏΡ€ΠΎΠ»Π΅Ρ›Π°.

ΠŸΡ€ΠΎΠ½Π°Π»Π°Π·ΠΈΠΌΠΎ рСтриАт врСдност Π½Π° слСдСћи Π½Π°Ρ‡ΠΈΠ½:

  1. Π’Ρ€Π°ΠΆΠΈ сС врСдност Π±Ρ€ΠΎΡ˜Π°Ρ‡Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΏΠΎΠ·ΠΈΠ²Π°.
  2. На основу врСдности Π±Ρ€ΠΎΡ˜Π°Ρ‡Π°, ΠΏΡ€Π΅Ρ‚Ρ€Π°ΠΆΡƒΡ˜Π΅ сС Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» кашњСња Ρƒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜ΠΈ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π°. Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜Π° јС дСкларисана Ρƒ самој Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ, ΠΈΠ·Π°Π±Ρ€Π°Π»ΠΈ смо ЈБОН Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ΡšΠ΅.
  3. Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» ΠΏΡ€ΠΎΠ½Π°Ρ’Π΅Π½ Ρƒ ЈБОН Π½ΠΈΠ·Ρƒ садрТи Π±Ρ€ΠΎΡ˜ сСкунди Π½Π°ΠΊΠΎΠ½ ΠΊΠΎΡ˜ΠΈΡ… Ρ›Π΅ сС ΠΎΠ±Ρ€Π°Π΄Π° ΠΌΠΎΡ€Π°Ρ‚ΠΈ ΠΏΠΎΠ½ΠΎΠ²ΠΈΡ‚ΠΈ. Овај Π±Ρ€ΠΎΡ˜ сСкунди сС додајС Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Ρƒ Π΄Π° Π±ΠΈ сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π»Π° врСдност Π·Π° рСтриАт.
  4. Ако ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» нијС ΠΏΡ€ΠΎΠ½Π°Ρ’Π΅Π½, ΠΎΠ½Π΄Π° јС врСдност рСтриАт Π½ΡƒΠ»Ρ‚Π° ΠΈ ΠΏΠΎΡ€ΡƒΠΊΠ° Ρ›Π΅ Π±ΠΈΡ‚ΠΈ послата Ρƒ Π”Π›Πš Ρ€Π°Π΄ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ³ Ρ€Π°ΡˆΡ‡Π»Π°ΡšΠΈΠ²Π°ΡšΠ°.

Π‘Π° ΠΎΠ²ΠΈΠΌ приступом, ΠΎΡΡ‚Π°Ρ˜Π΅ само Π΄Π° сС сачува Π±Ρ€ΠΎΡ˜ ΠΏΠΎΠ½ΠΎΠ²Ρ™Π΅Π½ΠΈΡ… ΠΏΠΎΠ·ΠΈΠ²Π° Π·Π° сваку ΠΏΠΎΡ€ΡƒΠΊΡƒ која сС Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ’ΡƒΡ˜Π΅, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρƒ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅. Π§ΡƒΠ²Π°ΡšΠ΅ Π±Ρ€ΠΎΡ˜Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΈΡ… ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° Ρƒ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜ΠΈ нијС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π·Π° овај приступ, ΠΏΠΎΡˆΡ‚ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π»ΠΈΠ½Π΅Π°Ρ€Π½Π΅ Π»ΠΎΠ³ΠΈΠΊΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС носи са ΠΎΠ±Ρ€Π°Π΄ΠΎΠΌ Ρƒ Ρ†Π΅Π»ΠΈΠ½ΠΈ. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΡƒ ΠΎΠ΄ ΠΏΡ€ΠΎΠ»Π΅Ρ›Π½ΠΎΠ³ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π°, ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π½Π΅Ρ›Π΅ ΠΏΡ€ΠΎΡƒΠ·Ρ€ΠΎΠΊΠΎΠ²Π°Ρ‚ΠΈ Π΄Π° сС свС ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠΈΠ·Π³ΡƒΠ±Π΅ ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΎΠ±Ρ€Π°Ρ’ΡƒΡ˜Ρƒ, Π²Π΅Ρ› Ρ›Π΅ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜Ρƒ.

Овај приступ ΠΏΠΎΠΌΠ°ΠΆΠ΅ Π΄Π° сС скинС ΠΎΠΏΡ‚Π΅Ρ€Π΅Ρ›Π΅ΡšΠ΅ са спољног систСма, који ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ нСдоступан Π·Π±ΠΎΠ³ Π²Π΅ΠΎΠΌΠ° Π²Π΅Π»ΠΈΠΊΠΎΠ³ ΠΎΠΏΡ‚Π΅Ρ€Π΅Ρ›Π΅ΡšΠ°. Π”Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π΅Ρ‡ΠΈΠΌΠ°, ΠΏΠΎΡ€Π΅Π΄ ΠΏΠΎΠ½ΠΎΠ²Π½Π΅ ΠΎΠ±Ρ€Π°Π΄Π΅, постигли смо ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Ρƒ шаблона ΠΏΡ€Π΅ΠΊΠΈΠ΄Π°Ρ‡.

Π£ нашСм ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, ΠΏΡ€Π°Π³ Π³Ρ€Π΅ΡˆΠΊΠ΅ јС само 1, Π° Π΄Π° бисмо ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π»ΠΈ Π·Π°ΡΡ‚ΠΎΡ˜Π΅ систСма Π·Π±ΠΎΠ³ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ… ΠΏΡ€Π΅ΠΊΠΈΠ΄Π° ΠΌΡ€Π΅ΠΆΠ΅, користимо Π²Π΅ΠΎΠΌΠ° Π΄Π΅Ρ‚Π°Ρ™Π½Ρƒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜Ρƒ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° са ΠΌΠ°Π»ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈΠΌΠ° кашњСња. Ово ΠΌΠΎΠΆΠ΄Π° нијС ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π·Π° свС Π³Ρ€ΡƒΠΏΠ½Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅, Ρ‚Π°ΠΊΠΎ Π΄Π° сС однос ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ ΠΏΡ€Π°Π³Π° Π³Ρ€Π΅ΡˆΠΊΠ΅ ΠΈ врСдности ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΌΠΎΡ€Π° ΠΈΠ·Π°Π±Ρ€Π°Ρ‚ΠΈ Π½Π° основу карактСристика систСма.

ПосСбна Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π·Π° ΠΎΠ±Ρ€Π°Π΄Ρƒ ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° са нСдСтСрминистичком Π»ΠΎΠ³ΠΈΠΊΠΎΠΌ

Π•Π²ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π° који ΡˆΠ°Ρ™Π΅ ΠΏΠΎΡ€ΡƒΠΊΡƒ Ρ‚Π°ΠΊΠ²ΠΎΡ˜ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ (Π Π΅Ρ‚Ρ€ΠΈΠ΅Ρ€), која Ρ›Π΅ ΠΏΠΎΠ½ΠΎΠ²ΠΎ послати Ρ‚Π΅ΠΌΡƒ Π”Π•Π‘Π’Π˜ΠΠΠ’Π˜ΠžΠ ΠΊΠ°Π΄Π° сС достигнС Π²Ρ€Π΅ΠΌΠ΅ Π Π•Π’Π Π˜_АВ:


public <K, V> void retry(ConsumerRecord<K, V> record, String retryToTopic, 
                         Instant retryAt, String counter, String groupId, Exception e) {
        Headers headers = ofNullable(record.headers()).orElse(new RecordHeaders());
        List<Header> arrayOfHeaders = 
            new ArrayList<>(Arrays.asList(headers.toArray()));
        updateHeader(arrayOfHeaders, GROUP_ID, groupId::getBytes);
        updateHeader(arrayOfHeaders, DESTINATION, retryToTopic::getBytes);
        updateHeader(arrayOfHeaders, ORIGINAL_PARTITION, 
                     () -> Integer.toString(record.partition()).getBytes());
        if (nonNull(retryAt)) {
            updateHeader(arrayOfHeaders, COUNTER, counter::getBytes);
            updateHeader(arrayOfHeaders, SEND_TO, "retry"::getBytes);
            updateHeader(arrayOfHeaders, RETRY_AT, retryAt.toString()::getBytes);
        } else {
            updateHeader(arrayOfHeaders, REASON, 
                         ExceptionUtils.getStackTrace(e)::getBytes);
            updateHeader(arrayOfHeaders, SEND_TO, "backout"::getBytes);
        }
        ProducerRecord<K, V> messageToSend =
            new ProducerRecord<>(retryTopic, null, null, record.key(), record.value(), arrayOfHeaders);
        kafkaTemplate.send(messageToSend);
    }

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Π΅ Π΄Π° сС ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° прСноси Ρƒ Π·Π°Π³Π»Π°Π²Ρ™ΠΈΠΌΠ°. ВрСдност Π Π•Π’Π Π˜_АВ сС Π½Π°Π»Π°Π·ΠΈ Π½Π° исти Π½Π°Ρ‡ΠΈΠ½ ΠΊΠ°ΠΎ ΠΈ Π·Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π° ΠΊΡ€ΠΎΠ· ЦонсумСр стоп. ΠŸΠΎΡ€Π΅Π΄ Π”Π•Π‘Π’Π˜ΠΠΠ’Π˜ΠžΠ ΠΈ Π Π•Π’Π Π˜_АВ ΠΏΡ€ΠΎΠ»Π°Π·ΠΈΠΌΠΎ:

  • Π“Π ΠžΠ£ΠŸ_Π˜Π”, ΠΏΠΎΠΌΠΎΡ›Ρƒ којС Π³Ρ€ΡƒΠΏΠΈΡˆΠ΅ΠΌΠΎ ΠΏΠΎΡ€ΡƒΠΊΠ΅ Π·Π° Ρ€ΡƒΡ‡Π½Ρƒ Π°Π½Π°Π»ΠΈΠ·Ρƒ ΠΈ ΠΏΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™Π΅Π½Ρƒ ΠΏΡ€Π΅Ρ‚Ρ€Π°Π³Ρƒ.
  • ΠžΠ Π˜Π“Π˜ΠΠΠ›_ПАРВИВИОН Π΄Π° ΠΏΠΎΠΊΡƒΡˆΠ° Π΄Π° Π·Π°Π΄Ρ€ΠΆΠΈ истог ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Π° Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½Ρƒ ΠΎΠ±Ρ€Π°Π΄Ρƒ. Овај ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ Π½ΡƒΠ»Π», Ρƒ ΠΊΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Ρ›Π΅ сС Π½ΠΎΠ²Π° ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π° Π΄ΠΎΠ±ΠΈΡ‚ΠΈ ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠΊΡ™ΡƒΡ‡Π° Ρ€Π΅Ρ†ΠΎΡ€Π΄.ΠΊΠ΅ΠΈ() ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅.
  • АТурирана врСдност Π¦ΠžΠ£ΠΠ’Π•Π  Π΄Π° Π±ΠΈ сС ΠΏΡ€Π°Ρ‚ΠΈΠ»Π° ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡ˜Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜Π°.
  • БЕНД_ВО јС константа која ΡƒΠΊΠ°Π·ΡƒΡ˜Π΅ Π½Π° Ρ‚ΠΎ Π΄Π° Π»ΠΈ сС ΠΏΠΎΡ€ΡƒΠΊΠ° ΡˆΠ°Ρ™Π΅ Π½Π° ΠΏΠΎΠ½ΠΎΠ²Π½Ρƒ ΠΎΠ±Ρ€Π°Π΄Ρƒ ΠΊΠ°Π΄Π° достигнС Π Π•Π’Π Π˜_АВ ΠΈΠ»ΠΈ јС ΡΠΌΠ΅ΡˆΡ‚Π΅Π½Π° Ρƒ Π”Π›Πš.
  • Π ΠΠ—Π›ΠžΠ“ - Ρ€Π°Π·Π»ΠΎΠ³ Π·Π±ΠΎΠ³ којСг јС ΠΎΠ±Ρ€Π°Π΄Π° ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠΏΡ€Π΅ΠΊΠΈΠ½ΡƒΡ‚Π°.

Π Π΅Ρ‚Ρ€ΠΈΠ΅Ρ€ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚ΠΈ ΠΏΠΎΡ€ΡƒΠΊΠ΅ Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎ слањС ΠΈ Ρ€ΡƒΡ‡Π½ΠΎ Ρ€Π°ΡˆΡ‡Π»Π°ΡšΠΈΠ²Π°ΡšΠ΅ Ρƒ ΠŸΠΎΡΡ‚Π³Ρ€Π΅Π‘ΠšΠ›. Π’Π°Ρ˜ΠΌΠ΅Ρ€ ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ Π·Π°Π΄Π°Ρ‚Π°ΠΊ који ΠΏΡ€ΠΎΠ½Π°Π»Π°Π·ΠΈ ΠΏΠΎΡ€ΡƒΠΊΠ΅ са Π Π•Π’Π Π˜_АВ ΠΈ ΡˆΠ°Ρ™Π΅ ΠΈΡ… Π½Π°Π·Π°Π΄ Π½Π° ΠžΠ Π˜Π“Π˜ΠΠΠ›_ПАРВИВИОН ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Ρƒ Ρ‚Π΅ΠΌΠ΅ Π”Π•Π‘Π’Π˜ΠΠΠ’Π˜ΠžΠ ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠΊΡ™ΡƒΡ‡Π° Ρ€Π΅Ρ†ΠΎΡ€Π΄.ΠΊΠ΅ΠΈ().

Када сС ΠΏΠΎΡˆΠ°Ρ™Ρƒ, ΠΏΠΎΡ€ΡƒΠΊΠ΅ сС Π±Ρ€ΠΈΡˆΡƒ ΠΈΠ· ΠŸΠΎΡΡ‚Π³Ρ€Π΅Π‘ΠšΠ›-Π°. Π ΡƒΡ‡Π½ΠΎ Ρ€Π°ΡˆΡ‡Π»Π°ΡšΠΈΠ²Π°ΡšΠ΅ ΠΏΠΎΡ€ΡƒΠΊΠ° сС дСшава Ρƒ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎΠΌ корисничком ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΡƒ који јС Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜ΠΈ са Π Π΅Ρ‚Ρ€ΠΈΠ΅Ρ€-ΠΎΠΌ ΠΏΡ€Π΅ΠΊΠΎ Π Π•Π‘Π’ АПИ-ја. ЊСговС Π³Π»Π°Π²Π½Π΅ карактСристикС су ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎ слањС ΠΈΠ»ΠΈ Π±Ρ€ΠΈΡΠ°ΡšΠ΅ ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΈΠ· Π”Π›Πš-Π°, ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΎ Π³Ρ€Π΅ΡˆΡ†ΠΈ ΠΈ Ρ‚Ρ€Π°ΠΆΠ΅ΡšΠ΅ ΠΏΠΎΡ€ΡƒΠΊΠ°, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ ΠΈΠΌΠ΅Π½Ρƒ Π³Ρ€Π΅ΡˆΠΊΠ΅.

ΠŸΠΎΡˆΡ‚ΠΎ јС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° приступа ΠΎΠΌΠΎΠ³ΡƒΡ›Π΅Π½Π° Π½Π° нашим кластСрима, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€Π°ΠΆΠΈΡ‚ΠΈ приступ Ρ‚Π΅ΠΌΠΈ ΠΊΠΎΡ˜Ρƒ Π Π΅Ρ‚Ρ€ΠΈΠ΅Ρ€ ΡΠ»ΡƒΡˆΠ° ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΠΈ Π Π΅Ρ‚Ρ€ΠΈΠ΅Ρ€Ρƒ Π΄Π° пишС Ρƒ Ρ‚Π΅ΠΌΡƒ ΠžΠ”Π Π•Π”Π˜Π¨Π’Π•. Ово јС Π½Π΅Π·Π³ΠΎΠ΄Π½ΠΎ, Π°Π»ΠΈ, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΡƒ ΠΎΠ΄ приступа ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π½ΠΈΠΌ Ρ‚Π΅ΠΌΠ°ΠΌΠ°, ΠΈΠΌΠ°ΠΌΠΎ ΠΏΡƒΠ½ΠΎΠΏΡ€Π°Π²Π½ΠΈ Π”Π›Πš ΠΈ кориснички ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ Π·Π° ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ΅.

ΠŸΠΎΡΡ‚ΠΎΡ˜Π΅ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈ ΠΊΠ°Π΄Π° Π΄ΠΎΠ»Π°Π·Π½Ρƒ Ρ‚Π΅ΠΌΡƒ Ρ‡ΠΈΡ‚Π° Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΡ… Π³Ρ€ΡƒΠΏΠ° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡Π°, Ρ‡ΠΈΡ˜Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ˜Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Ρƒ Π»ΠΎΠ³ΠΈΠΊΡƒ. Поновна ΠΎΠ±Ρ€Π°Π΄Π° ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠΏΡ€Π΅ΠΊΠΎ Π Π΅Ρ‚Ρ€ΠΈΠ΅Ρ€-Π° Π·Π° Ρ˜Π΅Π΄Π½Ρƒ ΠΎΠ΄ ΠΎΠ²ΠΈΡ… Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Ρ›Π΅ довСсти Π΄ΠΎ Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΡ˜. Π”Π° бисмо сС Π·Π°ΡˆΡ‚ΠΈΡ‚ΠΈΠ»ΠΈ ΠΎΠ΄ ΠΎΠ²ΠΎΠ³Π°, ΠΊΡ€Π΅ΠΈΡ€Π°ΠΌΠΎ посСбну Ρ‚Π΅ΠΌΡƒ Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½Ρƒ ΠΎΠ±Ρ€Π°Π΄Ρƒ. Π”ΠΎΠ»Π°Π·Π½Π΅ Ρ‚Π΅ΠΌΠ΅ ΠΈ Ρ‚Π΅ΠΌΠ΅ Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ‡ΠΈΡ‚Π° исти ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡ Π±Π΅Π· ΠΈΠΊΠ°ΠΊΠ²ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅ΡšΠ°.

Поновна ΠΎΠ±Ρ€Π°Π΄Π° Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° ΠΏΡ€ΠΈΠΌΡ™Π΅Π½ΠΈΡ… ΠΎΠ΄ ΠšΠ°Ρ„ΠΊΠ΅

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

Излаз

Као Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Ρ‚ΠΎΠ³Π°, ΠΈΠΌΠ°ΠΌΠΎ засСбну Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ која Π½Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° ΠΏΠΎΠ½ΠΎΠ²ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π΄Ρƒ ΠΏΠΎΡ€ΡƒΠΊΠ΅ Π°ΠΊΠΎ јС Π±ΠΈΠ»ΠΎ који спољни систСм ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΎ нСдоступан.

ЈСдна ΠΎΠ΄ Π³Π»Π°Π²Π½ΠΈΡ… прСдности Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ јС Ρ‚ΠΎ ΡˆΡ‚ΠΎ јС ΠΌΠΎΠ³Ρƒ користити спољни систСми који Ρ€Π°Π΄Π΅ Π½Π° истом ΠšΠ°Ρ„ΠΊΠ° кластСру, Π±Π΅Π· Π·Π½Π°Ρ‡Π°Ρ˜Π½ΠΈΡ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° ΡšΠΈΡ…ΠΎΠ²ΠΎΡ˜ страни! Π’Π°ΠΊΠ²Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Ρ›Π΅ ΠΌΠΎΡ€Π°Ρ‚ΠΈ само Π΄Π° приступи Ρ‚Π΅ΠΌΠΈ Π·Π° ΠΏΠΎΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜, ΠΏΠΎΠΏΡƒΠ½ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠšΠ°Ρ„ΠΊΠ° Π·Π°Π³Π»Π°Π²Ρ™Π° ΠΈ ΠΏΠΎΡˆΠ°Ρ™Π΅ ΠΏΠΎΡ€ΡƒΠΊΡƒ Π Π΅Ρ‚Ρ€ΠΈΠ΅Ρ€-Ρƒ. НСма ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ Π·Π° подизањСм Π΄ΠΎΠ΄Π°Ρ‚Π½Π΅ инфраструктурС. А Π΄Π° бисмо смањили Π±Ρ€ΠΎΡ˜ ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΏΡ€Π΅Π½Π΅Ρ‚ΠΈΡ… ΠΈΠ· Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Ρƒ Π Π΅Ρ‚Ρ€ΠΈΠ΅Ρ€ ΠΈ Π½Π°Π·Π°Π΄, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠΎΠ²Π°Π»ΠΈ смо Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ са Π»ΠΈΠ½Π΅Π°Ρ€Π½ΠΎΠΌ Π»ΠΎΠ³ΠΈΠΊΠΎΠΌ ΠΈ ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ’ΠΈΠ²Π°Π»ΠΈ ΠΊΡ€ΠΎΠ· ЦонсумСр стоп.

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

ΠšΡƒΠΏΠΈΡ‚Π΅ ΠΏΠΎΡƒΠ·Π΄Π°Π½ хостинг Π·Π° ΡΠ°Ρ˜Ρ‚ΠΎΠ²Π΅ са Π”Π”ΠΎΠ‘ Π·Π°ΡˆΡ‚ΠΈΡ‚ΠΎΠΌ, Π’ΠŸΠ‘ Π’Π”Π‘ сСрвСрС πŸ”₯ ΠšΡƒΠΏΠΈΡ‚Π΅ ΠΏΠΎΡƒΠ·Π΄Π°Π½ Π²Π΅Π± хостинг са DDoS Π·Π°ΡˆΡ‚ΠΈΡ‚ΠΎΠΌ, VPS VDS сСрвСрС | ProHoster