java-design-patterns/circuit-breaker/etc/circuit-breaker.urm.puml
2019-12-07 18:03:49 +02:00

44 lines
1.1 KiB
Plaintext

@startuml
package com.iluwatar.circuitbreaker {
class App {
- LOGGER : Logger {static}
+ App()
+ main(args : String[]) {static}
}
class CircuitBreaker {
~ failureCount : int
- failureThreshold : int
- futureTime : long
~ lastFailureTime : long
- retryTimePeriod : long
- state : State
- timeout : long
~ CircuitBreaker(timeout : long, failureThreshold : int, retryTimePeriod : long)
+ call(serviceToCall : String, serverStartTime : long) : String
+ getState() : String
- recordFailure()
- reset()
# setState()
+ setStateForBypass(state : State)
}
class DelayedService {
- delay : int
+ DelayedService()
+ DelayedService(delay : int)
+ response(serverStartTime : long) : String
}
class MonitoringService {
+ MonitoringService()
+ localResourceResponse() : String
+ remoteResourceResponse(circuitBreaker : CircuitBreaker, serverStartTime : long) : String
}
enum State {
+ CLOSED {static}
+ HALF_OPEN {static}
+ OPEN {static}
+ valueOf(name : String) : State {static}
+ values() : State[] {static}
}
}
CircuitBreaker --> "-state" State
@enduml