2013-03-15 14 views
9

OK, czuję, że brakuje mi jakiejś kluczowej informacji.Jak poinformować klienta, gdzie nowy użytkownik Redis używa Sentinel

Lokalnie mam 1 master i 1 niewolnikiem Redis serwer działa na różnych portach http://redis.io/topics/sentinel

Mam też 3 wartowników i wszystkie one wydają się być świadome siebie i działa zgodnie z oczekiwaniami.

Teraz mam duży kod Java wskazujący na 127.0.0.1:6379, gdzie znajduje się mój główny serwer redis.

jeśli wezmę dół pana, sentinel robi wszystko, czym zgodnie z oczekiwaniami promowanie niewolnika do opanowania, więc teraz jest nowy mistrz na

127.0.0.1:6380

Moje pytanie jest w jaki sposób mój kod to wiedzieć i przełącznik automatyczny?

Odpowiedz

7

Musisz zasubskrybować wiadomości wysłane na jeden ze swoich kanałów pubsub. można zobaczyć w linku, który pisał, że Sentinel publikuje się komunikaty jak

+odown <instance details> -- The specified instance is now in Objectively Down state. 
-odown <instance details> -- The specified instance is no longer in Objectively Down state. 
+failover-takedown <instance details> -- 25% of the configured failover timeout has elapsed, but this sentinel can't see any progress, and is the new leader. It starts to act as the new leader reconfiguring the remaining slaves to replicate with the new master. 
+failover-triggered <instance details> -- We are starting a new failover as a the leader sentinel. 

więc gdy widzisz Sentinel publikuje na jednym z tych kanałów, trzeba analizować komunikat i mieć swój reagować klienta odpowiednio. Redis nie jest mądry - musisz sobie z tym poradzić za pomocą biblioteki klienta.

szczególności najbardziej użyteczne kanały są

+odown 
+failover-detected 
+switch-master 
+0

Co za pomocą równoważenia obciążenia na Redis master/slave .. Jedyny problem mam z tym jest nie mogę pisać do Slave jest prawidłowy? –

+0

Nie chcesz ładować salda za pomocą urządzenia slave. Jeśli chcesz wyrównywać obciążenie, powinieneś mieć uruchomione wiele węzłów i wymyślić logikę w swoim kliencie, aby poradzić sobie z kluczami, które przejdą do których węzłów. –

+0

http://stackoverflow.com/questions/29210039/getting-redis-master-address-from-sentinel-c-sharp/29211741#29211741 – atikot

Powiązane problemy