remove rq

This commit is contained in:
kevin
2020-07-31 16:20:13 +08:00
parent f498e76def
commit e16fa958f9
4 changed files with 61 additions and 5 deletions

View File

@@ -2,15 +2,16 @@ package balancer
import (
"context"
"math/rand"
"sync"
"time"
"google.golang.org/grpc/balancer"
"google.golang.org/grpc/balancer/base"
"google.golang.org/grpc/resolver"
)
const (
Name = "roundrobin"
)
const Name = "roundrobin"
func init() {
balancer.Register(newBuilder())
@@ -24,13 +25,38 @@ func newBuilder() balancer.Builder {
}
func (b *roundRobinPickerBuilder) Build(readySCs map[resolver.Address]balancer.SubConn) balancer.Picker {
panic("implement me")
rand.Seed(time.Now().UnixNano())
picker := &roundRobinPicker{
index: rand.Int(),
}
for addr, conn := range readySCs {
picker.conns = append(picker.conns, &subConn{
addr: addr,
conn: conn,
})
}
return picker
}
type roundRobinPicker struct {
conns []*subConn
index int
lock sync.Mutex
}
func (p *roundRobinPicker) Pick(ctx context.Context, info balancer.PickInfo) (
conn balancer.SubConn, done func(balancer.DoneInfo), err error) {
panic("implement me")
p.lock.Lock()
defer p.lock.Unlock()
p.index = (p.index + 1) % len(p.conns)
return p.conns[p.index].conn, func(info balancer.DoneInfo) {
}, nil
}
type subConn struct {
addr resolver.Address
conn balancer.SubConn
}

View File

@@ -3,6 +3,7 @@ package resolver
import "google.golang.org/grpc/resolver"
type discovResolver struct {
cc resolver.ClientConn
}
func (r discovResolver) ResolveNow(options resolver.ResolveNowOptions) {