Найти Π² Π”Π·Π΅Π½Π΅
Java

πŸ–₯ Resilience4j - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Java, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ микросСрвисы устойчивыми ΠΊ сбоям ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌ

Π’ распрСдСлённых систСмах ошибки β€” это Π½ΠΎΡ€ΠΌΠ°: * внСшниС сСрвисы ΠΏΠ°Π΄Π°ΡŽΡ‚ * запросы Π·Π°Π²ΠΈΡΠ°ΡŽΡ‚ * API Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ * Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ€Π΅Π·ΠΊΠΎ растёт Если Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ситуации, ΠΎΠ΄ΠΈΠ½ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ Β«ΡƒΡ€ΠΎΠ½ΠΈΡ‚ΡŒΒ» всю систСму. Resilience4j Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°Π±ΠΎΡ€Π° ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² отказоустойчивости. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: Circuit Breaker ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ частоту ошибок ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ обращСния ΠΊ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ сСрвису, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ. Rate Limiter ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ количСство запросов ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ систСму ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ. Retry АвтоматичСски повторяСт запросы ΠΏΡ€ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сбоях, с настройкой числа ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ². Bulkhead ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ количСство ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ сбой Π² ΠΎΠ΄Π½ΠΎΠΉ части Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π» рСсурсы всСй систСмы. TimeLimiter УстанавливаСт Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ выполнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ слишком Π΄ΠΎΠ»Π³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвисов. ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ: Π’ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ β€” это Π½Π΅ отсутствиС ошибок, Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ систСмы ΠΏΡ€Π°Π²

πŸ–₯ Resilience4j - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Java, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ микросСрвисы устойчивыми ΠΊ сбоям ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌ.

Π’ распрСдСлённых систСмах ошибки β€” это Π½ΠΎΡ€ΠΌΠ°:

* внСшниС сСрвисы ΠΏΠ°Π΄Π°ΡŽΡ‚

* запросы Π·Π°Π²ΠΈΡΠ°ΡŽΡ‚

* API Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ

* Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ€Π΅Π·ΠΊΠΎ растёт

Если Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ситуации, ΠΎΠ΄ΠΈΠ½ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ Β«ΡƒΡ€ΠΎΠ½ΠΈΡ‚ΡŒΒ» всю систСму.

Resilience4j Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°Π±ΠΎΡ€Π° ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² отказоустойчивости.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

Circuit Breaker

ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ частоту ошибок ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ обращСния ΠΊ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ сСрвису, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ.

Rate Limiter

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ количСство запросов ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ систСму ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Retry

АвтоматичСски повторяСт запросы ΠΏΡ€ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сбоях, с настройкой числа ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ².

Bulkhead

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ количСство ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ сбой Π² ΠΎΠ΄Π½ΠΎΠΉ части Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π» рСсурсы всСй систСмы.

TimeLimiter

УстанавливаСт Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ выполнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ слишком Π΄ΠΎΠ»Π³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… сСрвисов.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ:

Π’ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ β€” это Π½Π΅ отсутствиС ошибок,

Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ систСмы ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π° Π½ΠΈΡ… Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Resilience4j β€” лёгкая, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache-2.0, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ прСдсказуСмыС распрСдСлённыС систСмы.

https://github.com/resilience4j/resilience4j