Description
Hello,
it would be great that spring boot actuator provides a locking/semaphore/mutex logic out-of-the box to prevent its endpoints from flooding.
I have the "actuator/health" especially in mind, as this endpoint is extendable by custom HealthIndicators
with potential problems. One of my HealthIndicators caused a long running task by invocing another service/repository (in the end: a missing response/connection timeout fixed the trouble to some degree). As the calculation took so long, my monitoring system (consul) fired more requests in order to get a state. But that only flooded my system...
Currently, there is a cache logic implemented for the actuator endpoints: once the value is calculated it will be cached. The missing piece for me is the semaphor/lock mechanism for not yet calculated (or obsolete/invalidated) values of actuator endpoints. This feature would help to avoid a flooding of the system.
I was wondering if such a feature could be provided by SpringBoot Actuator (like the caching...) and wanted to reach you out before implementing a custom solution on my own...
Best regards.