Skip to content

Commit 543fb4c

Browse files
authored
chore: redis action support load balancer (#9440)
1 parent b30daa2 commit 543fb4c

1 file changed

Lines changed: 21 additions & 13 deletions

File tree

pkg/lorry/engines/redis/manager.go

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,26 @@ func NewManager(properties engines.Properties) (engines.DBManager, error) {
9595
return nil, err
9696
}
9797
mgr.currentRedisHost = fixPodIP
98+
case viper.IsSet("LOAD_BALANCER_ENABLED"):
99+
lbHostInfo := viper.GetString("REDIS_ADVERTISED_LB_HOST")
100+
svcHosts := strings.Split(lbHostInfo, ",")
101+
for _, v := range svcHosts {
102+
items := strings.Split(v, ":")
103+
if getIndex(items[0]) == getIndex(mgr.CurrentMemberName) {
104+
mgr.currentRedisHost = items[1]
105+
break
106+
}
107+
}
98108
case viper.IsSet("HOST_NETWORK_ENABLED") || viper.IsSet("REDIS_ADVERTISED_PORT"):
99109
mgr.currentRedisHost = viper.GetString("KB_HOST_IP")
100-
if viper.IsSet("REDIS_ADVERTISED_PORT") {
101-
port, err := mgr.getAdvertisedPort(viper.GetString("REDIS_ADVERTISED_PORT"))
102-
if err != nil {
103-
return nil, err
104-
}
105-
mgr.currentRedisPort = port
110+
}
111+
if viper.IsSet("REDIS_ADVERTISED_PORT") {
112+
port, err := mgr.getAdvertisedPort(viper.GetString("REDIS_ADVERTISED_PORT"))
113+
if err != nil {
114+
return nil, err
106115
}
116+
mgr.currentRedisPort = port
107117
}
108-
109118
majorVersion, err := getRedisMajorVersion()
110119
if err != nil {
111120
return nil, err
@@ -198,15 +207,14 @@ func getFixedPodIP(podFQDN string) (string, error) {
198207
return "", fmt.Errorf("failed to get IP address for %s", podFQDN)
199208
}
200209

210+
func getIndex(name string) string {
211+
items := strings.Split(name, "-")
212+
return items[len(items)-1]
213+
}
214+
201215
func (mgr *Manager) getAdvertisedPort(redisAdvertisedPort string) (string, error) {
202216
// redisAdvertisedPort: pod1Svc:advertisedPort1,pod2Svc:advertisedPort2,...
203217
addrList := strings.Split(redisAdvertisedPort, ",")
204-
205-
getIndex := func(name string) string {
206-
items := strings.Split(name, "-")
207-
return items[len(items)-1]
208-
}
209-
210218
for _, addr := range addrList {
211219
host := strings.Split(addr, ":")[0]
212220
port := strings.Split(addr, ":")[1]

0 commit comments

Comments
 (0)