簡體   English   中英

當主服務器失敗時,Redis集群不會將Slave提升為主服務器

[英]Redis Cluster not promoting Slave to master when master fails

我在Windows 2012機器上運行4節點REDIS CLUSTER。

我的設置是1個主人和3個奴隸。 當我通過服務組件結束主服務時,我的所有奴隸都不會自動推銷自己。 我如何讓奴隸認識到師父失敗並在他們看到失敗后立即進行推廣。 下面是我的Redis配置。 這是所有節點的相同Config文件,唯一的區別是每個節點的端口都已更改

port 30002 cluster-enabled yes cluster-config-file nodes.conf appendonly yes loglevel notice logfile "log" syslog-enabled yes syslog-ident redis maxmemory 200mb maxmemory-policy volatile-ttl

編輯

我需要提供哪些其他信息才能更容易地幫助解決問題。

編輯2

我的最終游戲是redis集群,我希望這個集群有1個主服務器和3個從服務器。 我希望群集超過1 Master和3 Slave的設置的原因是,我想避免安裝REDIS Sentinel。 我希望群集將奴隸推廣到主人,而不是redis sentinel這樣做。

我的安裝過程如下

  • 創建4個文件夾(A,B,C,D)
  • 在每個文件夾中復制用於Windows的REDIS 64 msi
  • 在文件夾A,B,C,D中放入一個配置文件,就像上面的那個但不同的端口一樣
  • 使用文件夾A,B,C,D安​​裝redis服務
  • 開始所有服務
  • 對文件夾A,B,C,D執行Redis Meetup
  • 將文件夾A的復制添加到文件夾B,C,D
  • 將所有鍵分配給文件夾A上的redis實例

用FOLDER A作為主設備並且B,C,D是A的從屬設備。現在唯一的問題是,當A下降時,沒有任何從設備(B,C,D)自動提升。

編輯

master的redis.conf文件

port 30001 cluster-enabled yes cluster-config-file nodes.conf appendonly yes loglevel notice logfile "log" syslog-enabled yes syslog-ident redis maxmemory 200mb maxmemory-policy volatile-ttl

在運行sc stop redismasteralpha之前輸出集群節點

05a73c800cccfd8b11d33232887570c52a326afe 10.144.62.3:30002 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478637832268 5 connected
20be3e69195744aa379124d19a836650c72c23ba 10.144.62.3:30001 master - 0 1478637837736 5 connected 0-16383
d60d3d0a9f12ef37c997fe44389996d8c7f19c2c 10.144.62.3:30000 myself,slave 20be3e69195744aa379124d19a836650c72c23ba 0 0 1 connected
fda22db5ed5d25e2a8fba82122b47818fba248ce 10.144.62.3:30003 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478637836644 5 connected

停止服務后

05a73c800cccfd8b11d33232887570c52a326afe 10.144.62.3:30002 myself,slave 20be3e69195744aa379124d19a836650c72c23ba 0 0 3 connected
d60d3d0a9f12ef37c997fe44389996d8c7f19c2c 10.144.62.3:30000 slave,fail 20be3e69195744aa379124d19a836650c72c23ba 1478637948956 1478637947808 5 disconnected
fda22db5ed5d25e2a8fba82122b47818fba248ce 10.144.62.3:30003 slave 20be3e69195744aa379124d19a836650c72c23ba 0 1478638078833 5 connected
20be3e69195744aa379124d19a836650c72c23ba 10.144.62.3:30001 master,fail? - 1478638034799 1478638031628 5 connected 0-16383

無論我等多久, master,fail狀態都不會改變

服務停止后的群集信息

cluster_state:fail

cluster_slots_assigned:16384

cluster_slots_ok:0

cluster_slots_pfail:16384

cluster_slots_fail:0

cluster_known_nodes:4

cluster_size:1

cluster_current_epoch:5

cluster_my_epoch:5

cluster_stats_messages_sent:1075189

cluster_stats_messages_received:930887

據我所知,redis群集不會少於3個主人。

看看關於redis集群教程的這篇文章

請注意,按預期工作的最小群集需要包含至少三個主節點。 對於您的第一次測試,強烈建議啟動具有三個主設備和三個從設備的六節點集群。

Redis群集至少需要3個主節點,但不會起作用。

添加從站取決於用戶,但如果沒有3個主節點,則無法進一步移動。 要在Windows中設置群集,您可以按照我測試過的下面提到的鏈接進行操作。

Redis群集設置指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM