我有两台docker机器:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
redis-master * virtualbox Running tcp://192.168.99.100:2376 v1.10.1
redis-slave1 - virtualbox Running tcp://192.168.99.101:2376 v1.10.1
我正在尝试将主/从 redis 复制部署到这些机器,因此在每台机器上我都运行 REDIS 容器 + SENTINEL 容器并SLAVEOF
在主 redis 实例上运行命令。一开始一切都运行正常,但过了一段时间 (1-2 分钟),主服务器# Connection with slave 192.168.99.101:6379 lost.
在日志和从属日志中打印消息# Connection with master lost.
,并无限次 (没有成功) 尝试与主服务器重新同步。
我使用的REDIS版本是3.0.7
(也是使用redis自带的sentinel)。
这是 MASTER 日志(redis 和 sentinel 日志):http://pastebin.com/raw/MvwCTeEu
这是 SLAVE 日志(redis 和 sentinel 日志):http://pastebin.com/raw/vV6e3utK
sentinel.conf:
port 26379
dir /tmp
sentinel announce-ip <SENTINEL_IP>
sentinel monitor mymaster <MASTER_IP> 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel announce-port 26379
redis.conf:http://pastebin.com/raw/dqFYzTwz(它实际上是默认的 REDIS 配置,除了repl-backlog-size
我增加它以100mb
检查它是否有帮助,但没有帮助)。
这是一个奇怪的问题,因为一开始复制/同步工作正常,但正如我所说,1-2 分钟后主从连接丢失。在此期间,任何实例上都不会执行 redis/sentinel 命令。我只是启动 4 个容器并让它们停留 1-2 分钟...