Skip to content

Commit eb8de23

Browse files
committed
Make connection to zookeeper connect in cycle to allmachines in zookeeper list
1 parent 8690c58 commit eb8de23

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

core/internal/helpers/zookeeper.go

+19-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ package helpers
1212
import (
1313
"crypto/tls"
1414
"crypto/x509"
15+
stderrors "errors"
1516
"net"
1617
"os"
1718
"time"
@@ -57,9 +58,24 @@ func ZookeeperConnectTLS(servers []string, sessionTimeout time.Duration, logger
5758

5859
logger.Info("starting zookeeper (TLS)", zap.String("caFile", caFile), zap.String("certFile", certFile), zap.String("keyFile", keyFile))
5960

60-
dialer, err := newTLSDialer(servers[0], caFile, certFile, keyFile)
61-
if err != nil {
62-
return nil, nil, err
61+
var dialer zk.Dialer = nil
62+
var connectivityErrors error
63+
64+
for _, server := range servers {
65+
var err error
66+
dialer, err = newTLSDialer(server, caFile, certFile, keyFile)
67+
if err != nil {
68+
logger.Error("failed to create TLS dialer to server", zap.String("server", server), zap.Error(err))
69+
connectivityErrors = stderrors.Join(connectivityErrors, err)
70+
} else {
71+
// we found a working server, so we can stop looking
72+
logger.Info("created TLS dialer to server", zap.String("server", server))
73+
break
74+
}
75+
}
76+
77+
if dialer == nil {
78+
return nil, nil, connectivityErrors
6379
}
6480

6581
// We need a function to set the logger for the ZK connection

0 commit comments

Comments
 (0)