Я пытаюсь реализовать кластер Redis с 6 машинами. У меня бродячий кластер из шести машин:
192.168.56.101
192.168.56.102
192.168.56.103
192.168.56.104
192.168.56.105
192.168.56.106
все работает redis-server
Я отредактировал файл /etc/redis/redis.conf всех вышеперечисленных серверов, добавив это
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-slave-validity-factor 0
appendonly yes
Затем я запустил это на одной из шести машин;
./redis-trib.rb create --replicas 1 192.168.56.101:6379 192.168.56.102:6379 192.168.56.103:6379 192.168.56.104:6379 192.168.56.105:6379 192.168.56.106:6379
Кластер Redis запущен и работает. Я проверил вручную, установив значение на одном компьютере, которое отображается на другом компьютере.
$ redis-cli -p 6379 cluster nodes
3c6ffdddfec4e726f29d06a6da550f94d976f859 192.168.56.105:6379 master - 0 1450088598212 5 connected
47d04bc98ab42fc793f9f382855e5c54ab8f2e20 192.168.56.102:6379 slave caf2cec45114dc8f4cbc6d96c6dbb20b62a39f90 0 1450088598716 7 connected
040d4bb6a00569fc44eec05440a5fe0796952ccf 192.168.56.101:6379 myself,slave 5318e48e9ef0fc68d2dc723a336b791fc43e23c8 0 0 4 connected
caf2cec45114dc8f4cbc6d96c6dbb20b62a39f90 192.168.56.104:6379 master - 0 1450088599720 7 connected 0-10922
d78293d0821de3ab3d2bca82b24525e976e7ab63 192.168.56.106:6379 slave 5318e48e9ef0fc68d2dc723a336b791fc43e23c8 0 1450088599316 8 connected
5318e48e9ef0fc68d2dc723a336b791fc43e23c8 192.168.56.103:6379 master - 0 1450088599218 8 connected 10923-16383
Моя проблема в том, что когда я выключаю или останавливаю redis-server на любой машине, которая master
, весь кластер выходит из строя, но если все три подчиненных устройства умирают, кластер по-прежнему работает правильно.
Что мне делать, чтобы подчиненное устройство превратилось в мастера в случае отказа главного устройства (отказоустойчивость)?
Я исхожу из предположения, что redis обрабатывает все эти вещи, и мне не нужно беспокоиться об этом после развертывания кластера. Я прав, или мне придется делать что-то самому?
Другой вопрос: допустим, у меня шесть машин с 16 ГБ ОЗУ. Какой общий объем данных я смогу обработать в этом кластере Redis с тремя ведущими и тремя ведомыми устройствами?
Спасибо.