tools/benchmark: support connecting to several endpoints

--endpoints is comma separated but gRPC blocks forever on comma
separated lists. Instead, round-robin select endpoints when
creating new connections.
This commit is contained in:
Anthony Romano 2015-12-28 09:56:14 -08:00
parent aec356e416
commit 8e728afa62

View File

@ -18,12 +18,22 @@ import (
"crypto/rand"
"fmt"
"os"
"strings"
"github.com/coreos/etcd/Godeps/_workspace/src/google.golang.org/grpc"
)
var (
// dialTotal counts the number of mustCreateConn calls so that endpoint
// connections can be handed out in round-robin order
dialTotal int
)
func mustCreateConn() *grpc.ClientConn {
conn, err := grpc.Dial(endpoints)
eps := strings.Split(endpoints, ",")
endpoint := eps[dialTotal%len(eps)]
dialTotal++
conn, err := grpc.Dial(endpoint)
if err != nil {
fmt.Fprintf(os.Stderr, "dial error: %v\n", err)
os.Exit(1)