Ми переходимо від налаштування 1 веб-сервера до двох налаштувань веб-сервера, і мені потрібно почати обмін сеансами PHP між двома машинами, збалансованими навантаженнями. Ми вже Memcached встановили ( і початок ) , і тому я був приємно здивований , що я міг би зробити обмін сесій між новими серверами, змінюючи тільки 3 рядки в php.ini
файлі (в session.save_handler і session.save_path ):
Я замінив:
session.save_handler = files
з:
session.save_handler = memcache
Потім на головному веб-сервері я встановив session.save_path
точку на localhost:
session.save_path="tcp://localhost:11211"
і на підлеглому веб-сервері я встановив session.save_path
точку для господаря:
session.save_path="tcp://192.168.0.1:11211"
Робота виконана, я перевірив її, і вона працює. Але ...
Очевидно, що використання memcache означає, що сеанси знаходяться в оперативній пам’яті і будуть втрачені, якщо машина перезавантажиться або демон демонструє збій - мене це мало хвилює, але мене трохи більше турбує мережевий трафік між двома веб-серверами (особливо ми збільшуємо масштаб), тому що коли хтось буде завантажений збалансованим для підлеглого веб-сервера, їх сеанси будуть передаватися через мережу від головного веб-сервера. Мені було цікаво, чи можу я визначити два, save_paths
щоб машини шукали у власному сховищі сеансів перед тим, як використовувати мережу. Наприклад:
Майстер:
session.save_path="tcp://localhost:11211, tcp://192.168.0.2:11211"
Раб:
session.save_path="tcp://localhost:11211, tcp://192.168.0.1:11211"
Чи вдало б це розділити сеанси на серверах І допоможе продуктивність? тобто економлять мережевий трафік 50% часу. Або ця техніка лише для відмовок (наприклад, коли один демон-пам'ять недоступний)?
Примітка : Я насправді не питаю конкретно про реплікацію memcache - докладніше про те, чи може клієнт memcache PHP досягти максимального значення в кожному демоні memcache в пулі, повернути сеанс, якщо він знайде його, і створити лише новий сеанс, якщо він не знайде у всіх магазинах. Коли я пишу це, я думаю, що я прошу трохи від PHP, хаха ...
Припустимо : відсутність липких сеансів, балансування навантаження на кругових роботах, LAMP-сервери.