func RebalancerBackoff(d time.Duration) RebalancerOption {
	return func(r *Rebalancer) error {
		r.backoffDuration = d
		return nil
	}
}
RebalancerBackoff sets a beck off duration
package roundrobin
import (
	"fmt"
	"net/http"
	"net/url"
	"sync"
	"time"
	"github.com/mailgun/timetools"
	log "github.com/sirupsen/logrus"
	"github.com/vulcand/oxy/memmetrics"
	"github.com/vulcand/oxy/utils"
)
type RebalancerOption func(*Rebalancer) error
type Meter interface {
	Rating() float64
	Record(int, time.Duration)
	IsReady() bool
}
type NewMeterFn func() (Meter, error)
type Rebalancer struct {
	mtx *sync.Mutex
	clock timetools.TimeProvider
	backoffDuration time.Duration
	timer time.Time
	servers []*rbServer
	next balancerHandler
	errHandler utils.ErrorHandler
	ratings []float64
	newMeter NewMeterFn
	stickySession *StickySession
	requestRewriteListener RequestRewriteListener
	log *log.Logger
}
func RebalancerClock(clock timetools.TimeProvider) RebalancerOption {
	return func(r *Rebalancer) error {
		r.clock = clock
		return nil
	}
}