# v1.8.0 - 熔断限流

## 熔断器

```go
import "github.com/sony/gobreaker"

var cb = gobreaker.NewCircuitBreaker(gobreaker.Settings{
    Name:        "mysql",
    MaxRequests: 100,
    Interval:    10 * time.Second,
    Timeout:     30 * time.Second,
    ReadyToTrip: func(counts gobreaker.Counts) bool {
        return counts.ConsecutiveFailures > 5
    },
})

result, err := cb.Execute(func() (interface{}, error) {
    return db.Query(query)
})
```

## 限流

```go
import "golang.org/x/time/rate"

limiter := rate.NewLimiter(rate.Limit(100), 200) // 100/s, burst 200

if !limiter.Allow() {
    return nil, errors.New("rate limit exceeded")
}
```
