44 lines
1.1 KiB
Plaintext
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 |