diff --git a/core/breaker/breaker.go b/core/breaker/breaker.go index c542c339..24fa684e 100644 --- a/core/breaker/breaker.go +++ b/core/breaker/breaker.go @@ -13,11 +13,6 @@ import ( "github.com/tal-tech/go-zero/core/timex" ) -const ( - StateClosed State = iota - StateOpen -) - const ( numHistoryReasons = 5 timeFormat = "15:04:05" @@ -27,7 +22,6 @@ const ( var ErrServiceUnavailable = errors.New("circuit breaker is open") type ( - State = int32 Acceptable func(err error) bool Breaker interface { diff --git a/core/breaker/googlebreaker.go b/core/breaker/googlebreaker.go index aaae5df7..6e09b5e4 100644 --- a/core/breaker/googlebreaker.go +++ b/core/breaker/googlebreaker.go @@ -2,7 +2,6 @@ package breaker import ( "math" - "sync/atomic" "time" "github.com/tal-tech/go-zero/core/collection" @@ -21,7 +20,6 @@ const ( // see Client-Side Throttling section in https://landing.google.com/sre/sre-book/chapters/handling-overload/ type googleBreaker struct { k float64 - state int32 stat *collection.RollingWindow proba *mathx.Proba } @@ -32,7 +30,6 @@ func newGoogleBreaker() *googleBreaker { return &googleBreaker{ stat: st, k: k, - state: StateClosed, proba: mathx.NewProba(), } } @@ -43,15 +40,9 @@ func (b *googleBreaker) accept() error { // https://landing.google.com/sre/sre-book/chapters/handling-overload/#eq2101 dropRatio := math.Max(0, (float64(total-protection)-weightedAccepts)/float64(total+1)) if dropRatio <= 0 { - if atomic.LoadInt32(&b.state) == StateOpen { - atomic.CompareAndSwapInt32(&b.state, StateOpen, StateClosed) - } return nil } - if atomic.LoadInt32(&b.state) == StateClosed { - atomic.CompareAndSwapInt32(&b.state, StateClosed, StateOpen) - } if b.proba.TrueOnProba(dropRatio) { return ErrServiceUnavailable } diff --git a/core/breaker/googlebreaker_test.go b/core/breaker/googlebreaker_test.go index 9caaa67d..242fed87 100644 --- a/core/breaker/googlebreaker_test.go +++ b/core/breaker/googlebreaker_test.go @@ -27,7 +27,6 @@ func getGoogleBreaker() *googleBreaker { return &googleBreaker{ stat: st, k: 5, - state: StateClosed, proba: mathx.NewProba(), } }