30 nov. 2009
GearMan
Par Christophe de saint leger le lundi, novembre 30 2009, 12:22 - PHP - Lien permanent
GearMan Kesako ?

Après l'interview de D.seguy sur phptv , un nom d'extension a particulièrement attiré mon attention , à savoir "Gearman"
Je me suis donc renseigné sur la toile et bien entendu le site officiel http://gearman.org.
Si j'ai bien compris ( sans entrer dans les détails ) , cette extension , permet de déléguer de façon synchrone / asynchrone des taches , sur des machines distinctes , sur lesquelles est installé la partie serveur de GearMan.
Ainsi , l'on peut aisément imaginer un schéma comme ci-dessous :
Le client ( internaute ) demande une tache qui nécessite beaucoup de ressources ( pour une raison X ou Y .. ), le serveur , délègue alors à un des serveurs GearMan cette tâche , et attend sagement le résultat .
Un avantage non négligeable de GearMan , est qu'il peut dialoguer avec des langages différents Perl / PHP / C ect ..
J'ai découvert GearMan aujourd'hui même , je ne peux donc pas aller plus dans les détails , mais l'idée est là , il ne reste plus qu'à tester , et partager nos retours ...
Voici donc les étapes d'installation de GearMan client et Serveur.
Serveur
Sur une machine type Ubuntu , un simple
apt-get install gearman
Sur une machine débian :
apt-get install gearman-server
Il faut ensuite penser à modifier le paramètre ENABLED à true dans le fichier de configuration :
/etc/default/gearman-server
Si vous désirez compiler vous même la dernière version :
cd /usr/local/src/ wget http://launchpad.net/gearmand/trunk/0.10/+download/gearmand-0.10.tar.gz tar xzf gearmand-0.10.tar.gz cd gearmand-0.10 ./configure make make install
comme d'hab quoi ...
Le client
Ici , je ne vais présenter que l'installation de l'extension pour PHP .
Deux façons de faire :
- via PECL
- via les sources
PECL ,
Très simple :
pecl install channel://pecl.php.net/gearman-0.6.0
Les sources
Presque aussi simple :
cd /usr/local/src/ wget http://pecl.php.net/get/gearman-0.6.0.tgz tar xzf gearman-0.6.0.tgz cd gearman-0.6.0/ phpize ./configure make make install
Puis ajouter dans votre php.ini le lien vers l'extension :
extension="gearman.so"
Dépendances
Pour mener à bien l'installation de gearman , j'ai installé les librairies suivantes :
apt-get install libgearman-dev libgearman-server-dev uuid-dev
Conclusion
Voilà quelque chose à tester et découvrir , n'hésitez pas à nous faire profiter de vos retours sur l'utilisation de cette extension .
