URL: https://linuxfr.org/users/djinns/journaux/centralisation-des-sessions-php-mysql-mcache-sharedance-etc Title: Centralisation des sessions PHP: mysql, mcache, sharedance, etc ... Authors: DjinnS Date: 2007年01月16日T11:27:52+01:00 Tags: Score: 0 Salut, Imaginons une webfarm. Plusieurs serveurs Web distribuant le même contenu. Comment garder la même session d'un serveur à l'autre ? Car l'utlisateur "basculera" forcement d'un serveur à un autre. PHP étant la technologie qui nous interesse ici (et souvent la plus utilisée pour délivrer du contenu dynamique sur le Web actuellement), a déja tout prévu: session_set_save_handler() [1]. Avec cette fonction il est possible de redefinir le comportement des sessions. C'est donc très pratique pour avoir sa petite gestion personnalisée. La solution qui vient en premier à l'esprit (enfin c'était mon cas) est le stockage dans une base MySQL [2]. Ca semble être un moyen efficace et relativement simple à mettre en place. D'après le WP de chez MySQL c'est LA solution à tout nos problemes: performance, evolutivité, efficacité, coùt, sécurité, etc ... c'est presque la perfection absolue. Je suis en accord avec un certains nombre de points: coùt, évolutivité (c'est un point tres important, car il faut penser à pouvoir peut être plus tard à faire une ferme de serveur de session), facilité de mise en place et d'utilisation. La sécurité est relativement simple, même si il semble possible de vérouiller quelques points avec les droits et ACM de MySQL. On nous tartine aussi un petit coup sur les procédures stockées de MySQL 5.0. Mais au final, ca sent quand même la plaquette de vente. C'est le but, évidement. Même si le systeme reste alléchant. Mais pourquoi exist-il alors d'autres solutions ? Une d'elle est mcache [3]. Lui aussi nous promet un fonctionnement simple, une efficacité maximale et bien plus de souplesse que ne le permet le stockage simple dans une BDD. Il sait le faire si l'on le souhaite, en parrallèle pour évidement ne pas tout perde si la machine reboot ou etc ... On apprécira le fait qu'il gère avec efficacité les accès concurent, un point important du partage de sessions. Mais la où personnellement ca pêche un peu c'est en terme d'évolutivité.
If your requirements are higher than about 4000~5000 full session operations a second, depending on your server hardware, mcache may not be for you.
"5000 full session operations" en une seconde, c'est certe beaucoup mais je ne trouve pas ca "hallucinant". Qu'est ce qu'on fait au delas de ce chiffre ? Est-il possible de mettre plusieurs serveurs mcache (load balancing avec systeme de fichier distribué ?) en place ? Je me suis aussi interessé à ShareDance [4], l'exellent. Les commentaires sont tous dans un sens: il est génial. En grand fan de pureftpd je regarde un peu la doc ... et je suis aussi séduit. Reste l'évolutivité, la monté en charge et donc l'ajout en parrallèle de serveur ShareDance ? J'imagine que pour les skyblogs il n'y a pas qu'un seul serveur qui gère les sessions ... et étant donné que le systeme est une simple session TCP je me vois bien faire du LB dessus avec un système de fichier distribué derrière. En gros, je cherche quelques retour d'expérience sur ce sujet. Comment avez vous fait de votre coté ? BDD ? mcache ? ShareDance ? Ou peut être une autre solution ? Si vous avez utilisé ShareDance, qu'en pensez vous ? Est-il possible de faire de la balance de charge ? Avant de monter une plate forme de test, je souhaiterais juste savoir si je ne me trompe pas de chemin :) * [1]: [http://fr2.php.net/manual/fr/function.session-set-save-handl(...)](http://fr2.php.net/manual/fr/function.session-set-save-handler.php) * [2]: [http://www.mysql.fr/why-mysql/white-papers/mysql_wp_sessionm(...)](http://www.mysql.fr/why-mysql/white-papers/mysql_wp_sessionmgmt.php.fr) * [3]: [http://www.mohawksoft.org/?q=node/8](http://www.mohawksoft.org/?q=node/8) * [4]: [http://sharedance.pureftpd.org/project/sharedance](http://sharedance.pureftpd.org/project/sharedance)

AltStyle によって変換されたページ (->オリジナル) /