Przechodzimy z konfiguracji z 1 serwerem na konfigurację z dwoma serwerami i muszę zacząć udostępniać sesje PHP między dwoma maszynami z równoważeniem obciążenia. Zainstalowaliśmy już memcache ( i uruchomiliśmy ), więc byłem mile zaskoczony, że mogłem zrealizować sesje udostępniania między nowymi serwerami, zmieniając tylko 3 linie w php.ini
pliku ( session.save_handler i session.save_path ):
Wymieniłem:
session.save_handler = files
z:
session.save_handler = memcache
Następnie na głównym serwerze internetowym ustawiłem session.save_path
punkt na localhost:
session.save_path="tcp://localhost:11211"
i na serwerze podrzędnym ustawiłem session.save_path
punkt na master:
session.save_path="tcp://192.168.0.1:11211"
Praca wykonana, przetestowałem ją i działa. Ale...
Oczywiście użycie memcache oznacza, że sesje są w pamięci RAM i zostaną utracone, jeśli komputer zostanie zrestartowany lub demon memcache ulegnie awarii - trochę mnie to martwi, ale bardziej martwię się o ruch sieciowy między dwoma serwerami WWW (zwłaszcza, że skalujemy w górę), ponieważ ilekroć ktoś jest zrównoważony pod obciążeniem do serwera podrzędnego, jego sesje będą pobierane przez sieć z głównego serwera podrzędnego. Zastanawiałem się, czy mógłbym zdefiniować dwa, save_paths
aby komputery korzystały z własnej pamięci sesji przed użyciem sieci. Na przykład:
Mistrz:
session.save_path="tcp://localhost:11211, tcp://192.168.0.2:11211"
Niewolnik:
session.save_path="tcp://localhost:11211, tcp://192.168.0.1:11211"
Czy to z powodzeniem współużytkuje sesje na serwerach ORAZ poprawia wydajność? tj. oszczędzaj ruch sieciowy w 50% przypadków. Czy jest to technika tylko w przypadku przełączania awaryjnego (np. Gdy jeden demon pamięci podręcznej jest nieosiągalny)?
Uwaga : tak naprawdę nie pytam konkretnie o replikację memcache - więcej o tym, czy klient memcache PHP może osiągnąć szczyt w każdym demonie memcache w puli, zwróć sesję, jeśli ją znajdzie, i utwórz nową, jeśli nie znajdzie we wszystkich sklepach. Pisząc to, myślę, że trochę proszę od PHP, lol ...
Załóżmy : brak sesji lepkich, równoważenie obciążenia w trybie round-robin, serwery LAMP.