Bir LAMBASI kümede php oturumları yönetmek için en iyi yolu nedir?

5 Cevap php

Ben bir süre için bu konu üzerinde okuma oldum. Bu çözüm bir zorunluluk değil, sadece bir rüya olduğu Aniden gün geldi.

Benim okuma sayesinde, ben (dosya tabanlı, memcached, paylaşımlı bellek (mm), sql tablo ve özel) olarak popüler farklılıkları gördüm.

Biz ZFS'yi veya AFS kullanıyordu düşündüm orijinal fikir uygulama sunucuları (LAMP kutuları) her monte, ve bu monte yoldan bir dizine session.save_path php.ini ayarını işaret.

Ben başarı öyküleri duymak istiyorum.

5 Cevap

Burada John Campbell'ın cevabı yardımcı olmalıdır

http://stackoverflow.com/questions/76712

O sadece Memcached kullanarak değil hakkında yaptığı nokta önemlidir.

Ben bu soruya belirtildiği gibi Ayrıca, Zend Platform ile birlikte oturum kümeleme düşünebilirsiniz - ama bu çözüm ile ilgili önemli lisanslama maliyetleri vardır.

Ben (MySQL veya PostgreSQL gibi) bir veritabanında oturumları saklamak zaten sizin app yapar ne olursa olsun bir DB varsa, özellikle az baş ağrısı içerecektir düşünüyorum.

Birden çok makine arasında veri saklayabilirsiniz beri Memcached da, yardımcı olabilir, ama ben onunla herhangi bir deneyimi yok.

Ben herhangi bir sorun ile 5 yıldır paylaşılan sunucularında oturumlarına göre dosyasını kullanarak edilmiştir. Biz çok iyi bazı oldukça büyük olabilir seans (> 10MB) ve dosya bazlı çalışmalarımız var. Genellikle bizim paylaşılan sunucular nedenle sadece kök hepsini erişebilirsiniz chrooted dizinleri her site için oturum dosyalarını depolamak. Biz bu çok güvenilir bulduk ve hiç problem yaşamadım. Eğer veritabanı veya memcached işlevselliği bazı gevşek olsa da, PHP varsayılan bir sebebi vardır.

Eğer oturumları için bir Memcached çözüm içine arıyorsanız - belki kontrol Repcached olmalıdır. Sunucuları yeniden başlatılması alırsanız, vb kaybetme oturumları ile herhangi bir sorunları azaltmak gerekir

about repcached
"repcached" is patch set which adds data replication feature to memcached 1.2.x.

Note: Aslında henüz repcached çalıştı, ama içine bakarak değer olduğunu düşündüm değil.

Ben biraz önyargılı değilim, ama HTTP_Session2 öneririz. Biz de (PEAR::MDB2 ile MySQL, PostgreSQL, SQLite vb) veritabanı desteği dosyaları aracılığıyla işleme geleneksel oturumu desteği ise (ben bu paket üzerinde çalışıyorum) ve ayrıca memcached.

Şahsen, biz veritabanı işleyicisi kullanmak ve biz hiçbir büyük sorunları ile 100.000 kullanıcılar / gün kadar hizmet vermektedir. Ben optimizasyon-bilge, gelecek memcached gitmek istiyorum düşünüyorum, ancak veritabanı geriye Bendover size gerektirmeyen bir intermediat düzeltmek için mükemmeldir. :-)

Bu arada, memcached hakkında daha fazla bilgi için, How to manage session variables in a web cluster? benim cevap kontrol ediniz.

EDIT

Madem sordun, burada bir örnek (more in the API docs):

$options = array('memcache' => $memcache);

$memcache gereklidir PECL::Memcache bir örneği, olduğu. Ben bir örnek eksikliği biliyoruz ve biz bu konuda geliştirmek gerekir. Örneğin API documentation check out böylece arada, bizim kaynak kodu, oldukça iyi dokümantasyonunda inline vardır.