Chúng tôi đang chuyển từ thiết lập 1 máy chủ web sang thiết lập hai máy chủ web và tôi cần bắt đầu chia sẻ các phiên PHP giữa hai máy cân bằng tải. Chúng tôi đã cài đặt memcached ( và đã bắt đầu ) và vì vậy tôi đã rất ngạc nhiên khi tôi có thể hoàn thành các phiên chia sẻ giữa các máy chủ mới bằng cách chỉ thay đổi 3 dòng trong php.ini
tệp ( session.save_handler và session.save_path ):
Tôi đã thay thế:
session.save_handler = files
với:
session.save_handler = memcache
Sau đó, trên máy chủ web chính, tôi đặt session.save_path
điểm đến localhost:
session.save_path="tcp://localhost:11211"
và trên máy chủ web nô lệ, tôi đặt session.save_path
điểm đến chủ:
session.save_path="tcp://192.168.0.1:11211"
Công việc đã hoàn thành, tôi đã thử nghiệm nó và nó hoạt động. Nhưng...
Rõ ràng việc sử dụng memcache có nghĩa là các phiên trong RAM và sẽ bị mất nếu máy được khởi động lại hoặc trình nền memcache gặp sự cố - Tôi hơi lo lắng về điều này nhưng tôi hơi lo lắng về lưu lượng mạng giữa hai máy chủ web (đặc biệt là chúng tôi mở rộng quy mô) bởi vì bất cứ khi nào ai đó tải cân bằng với máy chủ web nô lệ, các phiên của họ sẽ được tìm nạp trên mạng từ máy chủ web chính. Tôi đã tự hỏi nếu tôi có thể định nghĩa hai save_paths
để các máy tìm trong bộ lưu trữ phiên của riêng chúng trước khi sử dụng mạng. Ví dụ:
Bậc thầy:
session.save_path="tcp://localhost:11211, tcp://192.168.0.2:11211"
Nô lệ:
session.save_path="tcp://localhost:11211, tcp://192.168.0.1:11211"
Điều này sẽ chia sẻ thành công các phiên trên các máy chủ VÀ giúp hiệu suất? tức là tiết kiệm lưu lượng mạng 50% thời gian. Hoặc kỹ thuật này chỉ dành cho failovers (ví dụ: khi một daemon memcache không thể truy cập được)?
Lưu ý : Tôi không thực sự hỏi cụ thể về sao chép memcache - thêm về việc máy khách memcache PHP có thể đạt đỉnh trong mỗi trình nền memcache trong một pool hay không, trả về một phiên nếu nó tìm thấy một và chỉ tạo một phiên mới nếu nó không tìm thấy một phiên trong tất cả các cửa hàng Khi tôi viết bài này, tôi nghĩ rằng tôi đang hỏi một chút từ PHP, lol ...
Giả sử : không có phiên dính, cân bằng tải vòng tròn, máy chủ LAMP.