Rate Limiter Pattern
@RateLimiter, ANNOTATION, EK, method, ke, EXECUTION, RATE, ko, LIMIT, karta hai — jaise, "SIRF, 10, calls, PER, second" ALLOWED, HAIN — YE, DOWNSTREAM, services, ko, OVERLOAD, hone, se, BACHATA, hai.
Rate, limiting, DEFENSIVE, hai (SELF-PROTECTION, ke, liye) aur, OFFENSIVE, bhi, ho, sakti, hai (jaise, THIRD-PARTY, API, ki, RATE, LIMITS, RESPECT, karна).
@RateLimiter(name = "externalApi")
public WeatherDto getWeather(String city) {
return weatherApiClient.getWeather(city);
}
// application.yml:
resilience4j.ratelimiter.instances.externalApi.limit-for-period: 10
resilience4j.ratelimiter.instances.externalApi.limit-refresh-period: 1s- @RateLimiter = method, ke, execution, rate, ko, limit, karta, hai
- Downstream, services, aur, THIRD-PARTY, APIs, ko, overload, hone, se, bachata, hai
- Third-party, APIs, ki, rate, limits, respect, karne, ke, liye, ESPECIALLY, important
Rate, limiter, TIME-BASED, hai (jaise, "10, calls, per, second"). Bulkhead, CONCURRENCY-BASED, hai, (jaise, "5, concurrent, calls, max") — DONO, DIFFERENT, PROBLEMS, solve, karte, hain aur, EK, saath, USE, kiye, ja, sakte, hain.
// Rate limiter — time-based:
resilience4j.ratelimiter.instances.api.limit-for-period: 10
// Bulkhead — concurrency-based:
resilience4j.bulkhead.instances.api.max-concurrent-calls: 5RequestNotPermitted, exception, throw, hoti, hai, jab, rate, limit, EXCEED, hoti, hai — EK, fallback, method, EK, 429, (Too Many Requests) response, RETURN, kar, sakta hai, client, ko, PROPERLY, inform, karne, ke, liye.