我正在使用 StackExchange.Redis 使用主/从和哨兵设置在 Redis 上进行概念验证设置以实现高可用性,并且在使用 StackExchange.Redis 时遇到了一些问题。
我已经使用最新的 Redis 服务器成功设置了 3 台 Ubuntu VM,一台服务器是带有 Sentinel 的主服务器,一台是带有 Sentinel 的从属服务器,另一台是纯粹的 Sentinel。通过使用 CLI,我可以看到从主服务器到从服务器的复制工作正常,当我停止主服务器(sudo services redis_6379 stop)时,从服务器被提升为主服务器。
但是,当尝试使用 StackExchange.Redis
ConnectionMultiplexer redis;
ConfigurationOptions options = ConfigurationOptions.Parse("172.20.74.40:6379,172.20.74.41:6379");
options.AbortOnConnectFail = false;
redis = ConnectionMultiplexer.Connect(options);
Run Code Online (Sandbox Code Playgroud)
我发现这在两台服务器都启动时完美运行,但是当主服务器被关闭时,Sentinel 正确响应,从服务器被提升为主服务器,但是从应用程序到集群的连接需要 12 到 40 秒来连接每次尝试(即它永远不会变得更快)。
我在这里错过了什么吗?我正在尝试实现高可用性,但这种滞后显然是不可接受的。
redis ×1