Kami pindah dari pengaturan 1 server web ke dua pengaturan server web dan saya harus mulai berbagi sesi PHP antara dua mesin load seimbang. Kami telah menginstal memcached ( dan mulai ) dan jadi saya senang bahwa saya bisa menyelesaikan sesi berbagi antara server baru dengan mengubah hanya 3 baris dalam php.ini
file ( session.save_handler dan session.save_path ):
Saya menggantikan:
session.save_handler = files
dengan:
session.save_handler = memcache
Kemudian pada server web master saya mengatur session.save_path
to point ke localhost:
session.save_path="tcp://localhost:11211"
dan pada server web slave saya atur session.save_path
ke point ke master:
session.save_path="tcp://192.168.0.1:11211"
Pekerjaan selesai, saya mengujinya dan berhasil. Tapi...
Jelas menggunakan memcache berarti sesi-sesi dalam RAM dan akan hilang jika mesin reboot atau daemon memcache crash - Saya sedikit khawatir dengan ini tetapi saya sedikit lebih khawatir tentang lalu lintas jaringan antara dua webservers (terutama karena kami meningkatkan) karena setiap kali seseorang dimuat seimbang ke server web budak sesi mereka akan diambil di seluruh jaringan dari server web master. Saya bertanya-tanya apakah saya dapat mendefinisikan dua save_paths
sehingga mesin melihat di sesi penyimpanan mereka sendiri sebelum menggunakan jaringan. Sebagai contoh:
Menguasai:
session.save_path="tcp://localhost:11211, tcp://192.168.0.2:11211"
Budak:
session.save_path="tcp://localhost:11211, tcp://192.168.0.1:11211"
Apakah ini berhasil berbagi sesi di seluruh server DAN membantu kinerja? yaitu menghemat lalu lintas jaringan 50% dari waktu. Atau apakah teknik ini hanya untuk failover (mis. Ketika satu daemon memcache tidak dapat dijangkau)?
Catatan : Saya tidak benar-benar bertanya secara spesifik tentang replikasi memcache - lebih lanjut tentang apakah klien memcache PHP dapat memuncak di dalam setiap daemon memcache di pool, mengembalikan sesi jika menemukan satu dan hanya membuat sesi baru jika tidak menemukan satu. di semua toko. Saat saya menulis ini, saya berpikir saya meminta sedikit dari PHP, lol ...
Asumsikan : tidak ada sesi lengket, penyeimbangan muatan round-robin, server LAMP.