
Gearman è un framework che vi consente di dividere il carico di lavoro su più macchine.
Il sistema lavora in parallelo con load balancing, si possono chiamare funzioni scritte in linguaggi diversi e può essere utilizzato sia per ottenere High Availability sia per sistemi più semplici. Una curiosità: il nome deriva dall’anagramma della parola Manager e fu scelto da Danga Interactive
che diede il via al progetto.
Un sistema che utilizza Gearman è diviso in tre parti: un client, un worker ed un job server. Il client crea il job ed invia la richiesta al job server che troverà un worker adatto al suo svolgimento come potete osservare nello schema in copertina.
Le varie parti comunicano utilizzando l’api fornita dal framework senza necessità di ricorrere all’utilizzo diretto di socket.
2 $client= new GearmanClient();
3 $client->addServer();
4 print $client->do("reverse", "Hello World!");
2 $worker= new GearmanWorker();
3 $worker->addServer();
4 $worker->addFunction("reverse", "my_reverse_function");
5 while ($worker->work());
6
7 function my_reverse_function($job)
8 {
9 return strrev($job->workload());
10 }
Via | Gearman
Anteprima del commento