Узел добавления кластера Redis завершается с ошибкой [ERR]. Не все 16384 слота покрыты узлами - PullRequest
0 голосов
/ 08 апреля 2020

У меня кластер Redis с 6 узлами (3 мастера, 3 подчиненных). Я пытаюсь добавить дополнительные ведущий и ведомый:

redis-cli --cluster add-node 100.96.1.11:6379 100.96.2.14:6379

Я получил

redis-cli --cluster add-node 100.96.1.11:6379 100.96.2.14:6379
>>> Adding node 100.96.1.11:6379 to cluster 100.96.2.14:6379
>>> Performing Cluster Check (using node 100.96.2.14:6379)
M: 9d91c8d60c4c644a7846829f91f1af8563bf99f9 100.96.2.14:6379
   slots: (0 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[ERR] Not all 16384 slots are covered by nodes.

Тем временем проверка кластера в порядке:

redis-cli --cluster check 100.96.1.5:6379
100.96.1.5:6379 (d475435a...) -> 36265 keys | 5462 slots | 1 slaves.
100.96.1.7:6379 (fd44a251...) -> 36205 keys | 5461 slots | 1 slaves.
100.96.2.13:6379 (00cc3a8b...) -> 36069 keys | 5461 slots | 1 slaves.
[OK] 108539 keys in 3 masters.
6.62 keys per slot on average.
>>> Performing Cluster Check (using node 100.96.1.5:6379)
M: d475435a6e70a5603f046f743f7774e6eead6afe 100.96.1.5:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 2c66b6ab6ebacd6054371bdc5d39aa08c48f76b5 100.96.1.10:6379
   slots: (0 slots) slave
   replicates 00cc3a8ba8cae1b539e172be01333b6f5fb2631a
M: fd44a251ce75c92049d1a5c748a8e52c2b0763e0 100.96.1.7:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
M: 00cc3a8ba8cae1b539e172be01333b6f5fb2631a 100.96.2.13:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: edcacf3cd1de6c5d9a3108211c7b84676b2cddca 100.96.2.9:6379
   slots: (0 slots) slave
   replicates fd44a251ce75c92049d1a5c748a8e52c2b0763e0
S: e6cea582a6d6a9c726d36d2899c9fbf4a7e08909 100.96.2.6:6379
   slots: (0 slots) slave
   replicates d475435a6e70a5603f046f743f7774e6eead6afe
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

Что не так?

1 Ответ

0 голосов
/ 08 апреля 2020

Чтобы добавить новый узел в кластер Redis, мы должны использовать команду:

redis-cli --cluster add-node <new-node-ip:port> <existing-node-ip:port>

В моем случае есть два IP-адреса новых узлов. Таким образом, если нам нужно добавить два новых узла как Master и Slave, мы должны выполнить эту команду дважды, но использовать флаг --cluster-slave для slave:

redis-cli --cluster add-node <new-node-ip:port> <existing-node-ip:port>
redis-cli --cluster add-node <new-node-ip:port> <existing-node-ip:port> --cluster-slave

После этого мы должны переназначить кластер Redis:

redis-cli --cluster reshard <existing-node-ip:port>
...