Mam zestaw replik składający się z 5 elementów: primary + arbiter na serwerze 1, secondary + arbiter na serwerze 2, hidden secondary (backup node) na serwerze 3. Oczekuję, że ta konfiguracja zadziała, jeśli jeden serwer przestanie działać lub tymczasowo utraci połączenie.Połączenie z zestawem replik MongoDB zajmuje minutę + w PHP, gdy pomocnicza jest nieosiągalna
Jednak po zaniku serwera 2 (tym z węzłami pomocniczymi + arbitrów) napotkałem dziwny problem. Każde połączenie z zestawem replik z PHP trwało ponad minutę. Próbowałem zmodyfikować ciąg połączenia, aby wykluczyć z niego serwer, który był nieczynny (węzeł dodatkowy), ale to nie pomogło.
W tym samym czasie połączenie za pośrednictwem konsoli mongo działało dobrze. Węzeł główny pozostał główny. Dziennik błędów PHP nie zawierał żadnych błędów.
Jedyną rzeczą, która pomogła w usunięciu węzłów na serwerze, które utraciły swój zestaw replik.
Jednak obecnie martwię się o awarię konfiguracji. Jak teraz rozumiem, jeśli serwer z węzłami pomocniczymi + węzłami arbitrażowymi zostanie wyłączony, cała konfiguracja przestanie działać poprawnie. Czy istnieje sposób, aby tego uniknąć? Potrzebuję klienta PHP, aby móc połączyć się z podstawowym bez względu na to, czy serwer pomocniczy + serwer arbitrażowy jest dostępny, czy nie. Jak to osiągnąć?
Wersja biblioteki klienta PHP mongo to 1.6.x, wersja serwera to 3.0.
Konfiguracja zawiera 5 członków z prawem głosu. Serwer 1 i 2 ma po 2 członków głosujących, Serwer 3 ma 1 członka głosującego. Kiedy serwer 2 przestanie działać, nadal będziemy mieli większość głosów online. – mephisto123