當使用斷路器模式時,是否可以將所有外部服務呼叫都包含在傳遞給.withCircuitBreaker()
的方法中,或者每個呼叫本身應傳遞給.withCircuitBreaker()
? 例如。Akka Http斷路器
// 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
?
在我的情況下,調用是相關的,你建議用什麼作爲緩存? –
我已編輯答案以添加有關緩存的更多信息。 – marcospereira
感謝您的更新答案 –