使用断路器模式时,是否可以将所有外部服务调用包装在传递给的方法中,.withCircuitBreaker()
或者每个调用本身都应该传递给.withCircuitBreaker()
?例如。
// wrapped
def wrapper(param: T) : Future[Option[T]] = {
externalCall1(param)
externalCall2(param)
}
circuitBreaker.withCircuitBreaker(wrapper(someParam))
// one-by-one
circuitBreaker.withCircuitBreaker(externalCall1(param))
circuitBreaker.withCircuitBreaker(externalCall2(param))
更新:如果是 Web 服务,是否可以在 中注册断路器,mainActorSystem
或者我应该使用单独的circuitBreakerActorSystem
?