From a295f5446a6661e84d20574c8a57455a4d439f48 Mon Sep 17 00:00:00 2001 From: left2right Date: Wed, 29 Nov 2017 15:29:25 +0800 Subject: [PATCH] compatible some usage --- cmd/ha/main.go | 6 ++++-- config/proxy.toml | 2 +- pkg/utils/redis/client.go | 28 ++++++++++++++++++---------- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/cmd/ha/main.go b/cmd/ha/main.go index 5c49ae869..2c8999e38 100644 --- a/cmd/ha/main.go +++ b/cmd/ha/main.go @@ -75,7 +75,7 @@ Options: t, err := client.Model() if err != nil { - log.PanicErrorf(err, "rpc fetch model failed") + log.ErrorErrorf(err, "rpc fetch model failed") } log.Warnf("topom =\n%s", t.Encode()) @@ -83,7 +83,7 @@ Options: overview, err := client.Overview() if err != nil { - log.PanicErrorf(err, "rpc fetch overview failed") + log.ErrorErrorf(err, "rpc fetch overview failed") } prodcutAuth := overview.Config.ProductAuth @@ -329,6 +329,8 @@ Groups: n, err := strconv.Atoi(stats.Stats["master_link_down_since_seconds"]) if err != nil { log.WarnErrorf(err, "try to get %s master_link_down_since_seconds failed", addr) + // some backend server like pika doen't support master_link_down_since_seconds, temp resolution + picked = i continue } if n >= 0 && n < mindown { diff --git a/config/proxy.toml b/config/proxy.toml index ddbc4efe8..16b644734 100644 --- a/config/proxy.toml +++ b/config/proxy.toml @@ -42,7 +42,7 @@ jodis_compatible = false proxy_datacenter = "" # Set max number of alive sessions. -proxy_max_clients = 1000 +proxy_max_clients = 20000 # Set max offheap memory size. (0 to disable) proxy_max_offheap_size = "1024mb" diff --git a/pkg/utils/redis/client.go b/pkg/utils/redis/client.go index dcd6eb531..df2b11134 100644 --- a/pkg/utils/redis/client.go +++ b/pkg/utils/redis/client.go @@ -170,20 +170,28 @@ func (c *Client) SetMaster(master string) error { if err != nil { return errors.Trace(err) } - c.conn.Send("MULTI") - c.conn.Send("CONFIG", "SET", "masterauth", c.Auth) - c.conn.Send("SLAVEOF", host, port) - c.conn.Send("CONFIG", "REWRITE") - c.conn.Send("CLIENT", "KILL", "TYPE", "normal") - values, err := redigo.Values(c.Do("EXEC")) - if err != nil { + if _, err := c.Do("CONFIG", "SET", "masterauth", c.Auth); err != nil { + return errors.Trace(err) + } + if _, err := c.Do("SLAVEOF", host, port); err != nil { return errors.Trace(err) } - for _, r := range values { - if err, ok := r.(redigo.Error); ok { + /* + c.conn.Send("MULTI") + c.conn.Send("CONFIG", "SET", "masterauth", c.Auth) + c.conn.Send("SLAVEOF", host, port) + c.conn.Send("CONFIG", "REWRITE") + c.conn.Send("CLIENT", "KILL", "TYPE", "normal") + values, err := redigo.Values(c.Do("EXEC")) + if err != nil { return errors.Trace(err) } - } + for _, r := range values { + if err, ok := r.(redigo.Error); ok { + return errors.Trace(err) + } + } + */ return nil }