簡體   English   中英

Redis-配置哨兵以在主服務器關閉時選舉從服務器

[英]Redis - configure sentinel to elect slave if master shutdown

嗨,我創建了一個由3個AWS實例組成的哨兵集群Redis,我已配置哨兵以具有HA Redis集群並正常工作,但是如果我模擬主節點崩潰(關閉主實例),則哨兵安裝在從屬節點上,而不是定位主人的哨兵和選舉失敗。 我的哨兵配置是:

sentinel monitor master ip-master 6379 2
sentinel down-after-milliseconds master 5000
sentinel failover-timeout master 10000
sentinel parallel-syncs master 1

同一文件到所有實例

在與主節點相同的節點上運行哨兵並嘗試觸發故障轉移時會出現問題。 無需在主服務器上運行Sentinel即可嘗試。 最終,這意味着不要在與Redis實例相同的節點上運行Sentinel。

在您的情況下,死節點模擬顯示了為什么不應該在與Redis相同的節點上運行Sentinel:如果該節點死亡,則會丟失其中一個前哨。 從理論上講,它仍然應該起作用,但是正如您和其他人所看到的那樣,它並不確定起作用。 我有一些理論為什么,但我尚未證實。

從某種意義上說,Sentinel在某種程度上是一個監視系統。 通常不建議在與要監視的節點相同的節點上運行監視解決方案,因此無論如何都應使用節點外哨點。 由於Sentinel具有資源效率,因此您不一定需要專用的計算機或大型VM。 的確,如果您有一組靜態的應用程序服務器(在其中運行客戶端代碼),則應在此處運行Sentinel,請記住,您需要最少3個,法定數量為50%+ 1。

最近的redis版本引入了“保護模式”選項,默認為yes。

如果保護模式設置為yes,則Redis實例(未設置密碼)將不允許遠程客戶端執行命令。

這也影響了哨兵大師的選舉。

嘗試在前哨中設置“保護模式否”。 這將使他們彼此交談。

如果您不想將保護模式設置為否。 您最好在redis.conf中設置masterauth myredis並在sentinel.conf中使用sentinel auth-pass mymaster myredis

暫無
暫無

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

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